Форум программистов, компьютерный форум, киберфорум
Наши страницы

Подсчёт первого слова в строке и задача на перестановку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать массив С из элементов четных столбцов и массив В из элементов нечетных строк массива А http://www.cyberforum.ru/cpp-beginners/thread693469.html
Дана матрица А= 4.8, 3.2, 9.1, 5 5.1, 6, 1.4, -1 4.3, 1.15, 2.8, 3.14 в которой m=3 n=4. Необходимо сформировать массив С из элементов четных столбцов и массив В из элементов нечетных строк...
C++ Среднее значение цифр данного числа Здравствуйте. Не могу понять как доделать задачу. Дана задача. Введите целое число. Посчитать среднее значение цифр данного числа. Например 23456, ответ 4. Вот что я нарешал.#include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread693453.html
Работа со строками: выводит все слова, с четным количеством букв C++
Требуется помощь в написании следующей программы: С клавиатуры вводится текстовая строка. Составить программу, которая: подсчитывает количество разделительных знаков в тексте выводит все...
C++ Замена слов в string
Подскажите в чём проблема. В строке нужно искать слова длиной >10 символов и менять их на другое слово. Смысл понятен , не получается правильно выполнить. Привожу код: void replaceStr (string...
C++ Сортировка (исправить код) http://www.cyberforum.ru/cpp-beginners/thread693434.html
Помогите с сортировкой! Нужно сортировать исходные данные по убыванию!! Простой массив сортировать могу, а тут никак не получается) Сортировать по значению k #include <iostream> #include...
C++ Решение проекта в Microsoft Visual Studio C++ Подскажите как реализовать это пример, сразу оговорюсь (консольное приложение) в Microsoft Visual Studio C++ И так начнем: Дан Текстовый файл c расширением txt нужно вывести на экран и скопировать в... подробнее

Показать сообщение отдельно
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
10.11.2012, 11:01
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
28
29
30
31
32
#include <iostream>
#include <string>
 
using namespace std; 
int main(){ 
setlocale(0,"");
        int i=0;
 
        char s[1024] = {' '},*w,*a,*k;
        cin.get(s, 1024);
        a=strtok(s, " "); // получение первого токена
        if (a)
        {
         k = a; 
         i++;
 
// проблема в том, что произошел один вызов функции strtok
// поэтому повторный вызов с w не работает
//      for(w = strtok(s, " \n\t"); w != NULL; w = strtok(NULL, " \n\t")) if (w == a) i++;
 
         for(a = strtok(NULL, " \n\t"); a; a = strtok(NULL, " \n\t")) 
         {          
          if (strcmp(a,k) == 0) 
           i++;
         }
        } 
 
        cout <<"Слово "<<k<<" повторяется "<<i<<" раз";
        cin.get();
        cin.get();
        return 0;
}
char * strtok ( char * str, const char * delimiters );
Функция разбивает str на токены, которые представляют из себя последовательность символов, разделенных любым из символов-разделителей (delimiters).

При первом вызове функция ожидает строку C в качестве аргумента для str, первый символ который используется в качестве начальной позиции для поиска токенов. При последующих вызовах функция ожидает нулевой указатель и использует позицию сразу после завершения последнего токена в качестве новой начальной позиции для поиска.

Для определения начала и конца токена, функция сначала определяет начальную позицию, становящуюся началом токена) первого символа, который не является разделителем, содержащимся в delimiters. Затем поиск начинается с начала токена до первого вхождения символа, входящего в состав delimiters, который становится окончанием токена.

Окончание токена автоматически замещается функцией нулевым символом, и функция возвращает начало токена.

Как только завершающий нулевой символ был найден при вызове strtok, все последующие вызовы функции с нулевым указателем в качестве первого аргумента возвращает нулевой указатель

Позиция, где был найден последний токен сохраняется внутри функции для использовании при следующем вызове.

параметры:
str - строка. Если указывается нулевой указатель, то функция продолжает поиск с того места, где закончился предыдущий успешный вызов
delimiters - разделители

Добавлено через 10 минут
Во второй задаче проблема в том, что программа ожидает ввода 10 символов, и когда она их получает часть из них записывается в str.

tuchkafivet -11 символов, t записывается в str
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru