Форум программистов, компьютерный форум CyberForum.ru

Применение strtok() для получения слова - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ дана целочисленная прямоугольная матрица. Определить количество столбцов,содержащих хотя бы один нулевой элемент. http://www.cyberforum.ru/cpp-beginners/thread597046.html
помогите срочно!!! Надо написать прогу. Вот условие: дана целочисленная прямоугольная матрица. Определить количество столбцов,содержащих хотя бы один нулевой элемент.
C++ создать БД "Бухгалтерия" на Си++ создать БД "Бухгалтерия", включающую следующую информацию: ф.И.О. работника, образование, должность, дата поступления на работу, оклад и т.д. Разработать 2 формы отчетности с возможностью переключения 3-й формы. http://www.cyberforum.ru/cpp-beginners/thread597045.html
Запись в файл в виде таблицы C++
Всем привет, помогите пожалуйста с задачей. Необходимо написать программу, которая заполняет двумерный вещественный массив случайными числами и записывает его в файл в виде таблицы. Надеюсь на вашу помощь.
C++ в двумерном массиве посчитать сколько отрицательных чисел
#include<stdio.h> #include<iostream.h> void main() { ; int i,j, p=0; int mas; cout<<"Vvedite 16 chisel "<<endl; for (i=0; i<4; i++); for (j=0; j<4; j++); scanf ("%i", &mas);
C++ При заданном x с точностью e вычислить сумму http://www.cyberforum.ru/cpp-beginners/thread597031.html
При заданном x с точностью \epsilon вычислить сумму S = \sum_{k = 0}^{\infty} \frac{{(-1)}^{k}\cdot {x}^{4k + 3}}{(2k + 1)!}
C++ Дано натуральное число N Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых сумма всех цифр совпадает с суммой цифр данного числа. Если таких чисел нет, то вывести слово "нет". Пример N=44. Числа: 17, 26, 35. подробнее

Показать сообщение отдельно
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1

Применение strtok() для получения слова - C++

05.06.2012, 15:34. Просмотров 566. Ответов 1
Метки (Все метки)

Ребят, задача собственно, такая: у заданного текста поменять местами первое и последнее слово. Алгоритм у меня такой.
Я с помощью strtok получаю первое и последнее слова, затем, мне нужно посчитать длину текста, расположенного между ними(между первым и последним словом).
Длина текста между первым и последним словом= длина всей строки-(длина первого слова+длина последнего). Длины первого и последнего слова получаю без проблем функцией strlen.
Но вот длину всей строки я не могу посчитать, т.к. strtok изменяет исходную строку,таким образом в buffer у меня длина получается равной 3(хотя на самом деле она, как мы видим, равна 11). Как можно обойти данную проблему?
Я вижу это двумя способами:
1)Использовать strlen() до вызова strtok()
2)Копировать исходную строку в динамический массив, и затем брать длину текста из нее.

Есть ли какие-нибудь более простые пути решения данной проблемы?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<string.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
    
    char buffer[30]="123 456 789";
 
    cout<<"Исходный текст:  "<<buffer<<endl;
 
    char *razdelitel=" ,.";             //символ-разделитель
 
    char *slovo;                        
 
    slovo=strtok(buffer,razdelitel);    //получаем слово
 
    cout<<slovo<<endl;  
 
    cout<<"После использования strtok():  "<<endl;
    cout<<buffer<<endl;                 //выводим исходный текст
    cout<<"Длина исходной строки = ";
    cout<<strlen(buffer)<<endl;         //его длина
 
return 0;
}
Миниатюры
Применение strtok() для получения слова  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru