Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
lotos580
1 / 1 / 1
Регистрация: 25.05.2012
Сообщений: 60
#1

Найти количество одинаковых слов в строке

02.05.2014, 19:18. Просмотров 542. Ответов 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>
using namespace std;
 
int main()
{
    char str1[100] = "to be or not to be";
 
    char* leks = strtok(str1, " ");
    while(leks) // <======================================
    {
        int k = 0;
        cout << leks << " : ";
 
        char newStr[100] = "to be or not to be";
        char* l = strtok(newStr, " ");
        while(l) 
        {
            if(strcmp(l, leks) == 0)
                k++;
            l = strtok(0, " ");
        }
        cout << k << endl;
        leks = strtok(0, " ");
    }
    system("pause");
    return 0;
}
Не пойму, почему при добавлении второго strcmp первый(строка 9) работает неправильно? Прерывается на первом слове to, не пройдя полностью по всей строке.

Добавлено через 45 секунд
Если второго strcmp нет, то первый работает корректно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 19:18
Ответы с готовыми решениями:

Cтроки, vector. Посчитать количество одинаковых слов в строке
Дана строка текста разделена пробелами, символами &quot;,&quot; и &quot;;&quot;.Посчитать...

Найти количество одинаковых слов, используя методы string
#include&lt;iostream&gt; #include&lt;string&gt; using namespace std; int main() { int...

Найти строку текста, в которой присутствует наибольшее количество одинаковых слов
Найти строку текста, в которой присутствует наибольшее количество одинаковых...

Как найти максимальное количество одинаковых букв в строке
Как найти максимальное количество одинаковых букв в строке. Например: ввод:...

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

2
MayaNash
1291 / 459 / 151
Регистрация: 24.08.2011
Сообщений: 2,247
02.05.2014, 19:29 #2
Видимо потому, что strtok запоминает позицию только для одной строки. То есть вот для первой строки ты нашла первое слово, потом тебе надо первым аргументом передавать 0, потому что strtok запомнила ту строку. Но когда ты делаешь то же самое для другой строки, в ней уже другая строка сохранилась, и уже работает неправильно.
Разбей строку на массив указателей на слова, с помощью strtok собственно, и сравнивай их как при пузырьковой сортировке.
1
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
02.05.2014, 19:32 #3
Ты используешь strtok() одновременно с двумя разными строкам. Она будет сбиваться. После вызова strtok() с первым параметром не равным NULL, информация о предыдущей строке теряется.

Добавлено через 39 секунд
Уже ответили.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2014, 19:32

Найти количество слов в строке; найти самое длинное слово, заканчивающееся на заданную букву
Дана строка текста, в которой слова разделены пробелами. Необходимо: ...

В строке с найти количество слов не содержащий подстроку
В строке с найти количество слов не содержащий подстроку с2 вывести эти слова...

В строке с найти количество слов заканчивающихся подстрокой с2
В строке с найти количество слов заканчивающихся подстрокой с2! Напишите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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