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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lotos580
1 / 1 / 1
Регистрация: 25.05.2012
Сообщений: 60
#1

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

02.05.2014, 19:18. Просмотров 440. Ответов 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 нет, то первый работает корректно...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 19:18     Найти количество одинаковых слов в строке
Посмотрите здесь:

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

Найти количество одинаковых слов, используя методы string - C++
#include&lt;iostream&gt; #include&lt;string&gt; using namespace std; int main() { int g(0), m, k, n, l, r; string s, s1, w; int sum =...

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

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

В строке с найти количество слов не содержащий подстроку - C++
В строке с найти количество слов не содержащий подстроку с2 вывести эти слова где с2=аб

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

Найти количество слов в строке, начищающихся с заданной буквы - C++
Дана строка.найти количество слов в ней, начищающихся с заданной буквы алфавита

Найти количество слов четной и нечетной длины в строке - C++
Нужно создать программу С++, которая будет подсчитывать количество слов парной и непарной длины в строке, введённой с клавиатуры. Пока...

Найти количество слов в строке с использованием библиотечных функций string.h - C++
Найти количество слов в строке с использованием библиотечных функций string.h на языке С. Помогите Не дублируйте темы!

Удаление одинаковых слов в строке - C++
добрый вечер, была такая задача -удалить из строки одинаковые -подряд идущие слова. подскажите, это нужно каждую букву сравнивать ? и как...

Удаление одинаковых слов в строке - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; using namespace std; int _tmain(int argc, _TCHAR* argv) { const...

Удаление одинаковых слов в строке - C++
Здравствуйте, задача заключается в удалении одинаковых слов в строке. Пытался решить, но не доходит где у меня ошибка. Прошу помочь,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
02.05.2014, 19:29     Найти количество одинаковых слов в строке #2
Видимо потому, что strtok запоминает позицию только для одной строки. То есть вот для первой строки ты нашла первое слово, потом тебе надо первым аргументом передавать 0, потому что strtok запомнила ту строку. Но когда ты делаешь то же самое для другой строки, в ней уже другая строка сохранилась, и уже работает неправильно.
Разбей строку на массив указателей на слова, с помощью strtok собственно, и сравнивай их как при пузырьковой сортировке.
nmcf
5267 / 4587 / 1538
Регистрация: 14.04.2014
Сообщений: 18,223
02.05.2014, 19:32     Найти количество одинаковых слов в строке #3
Ты используешь strtok() одновременно с двумя разными строкам. Она будет сбиваться. После вызова strtok() с первым параметром не равным NULL, информация о предыдущей строке теряется.

Добавлено через 39 секунд
Уже ответили.
Ответ Создать тему
Опции темы

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