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

Количество повторений слова в строке - C++

Восстановить пароль Регистрация
 
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
08.01.2014, 16:04     Количество повторений слова в строке #1
Вот код программы. В роди бы написана правильно, но компилятор выдает "Работа программы завершена!"
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
33
34
35
36
37
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int myfind(char* str,char* sub_str)
{
 char temp[64];
 
 int i=0;
 int k;
 int count = 0;
 while(str[i] != '\0')
 {
     memset(temp,0,64);
     k = 0;
     while(str[i] != ' ')
     {
         temp[k] = str[i];
         i++;
         k++;
     }
     if(strcmp(sub_str,temp) == 0) count++;
     i++;
 }
return count;
}
 
int main()
{
    char str[] = "hello he lo lo he hello li hello";
    char sub[] = "hello";
    cout<<str<<endl;
    cout<<myfind(str,sub);
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 16:04     Количество повторений слова в строке
Посмотрите здесь:

Поиск в строке всех повторений заданного слова, замена их звездочками C++
C++ Количество повторений каждой буквы в строке
Функция в строке должна вычислять количество слов (слова разделяются пробелом) C++
C++ В символьной строке определить количество и вывести все самые длинные слова
C++ Работа со строчками (вывести в столбец все слова без повторений и количеством использования каждого слова)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
08.01.2014, 20:24     Количество повторений слова в строке #2
Цитата Сообщение от vozup Посмотреть сообщение
while(str[i] != ' ')
Нет защиты от выхода за пределы строки.

Добавлено через 4 минуты
Вообще, подумайте хорошо над алгоритмом, копировать здесь ничего никуда не нужно.
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
08.01.2014, 21:27  [ТС]     Количество повторений слова в строке #3
while(str[i] != ' ' && i < strle(str) + 1) так работает

Добавлено через 1 минуту
Єтот код сильно плохой?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
09.01.2014, 12:37     Количество повторений слова в строке #4
Цитата Сообщение от vozup Посмотреть сообщение
while(str[i] != ' ' && i < strle(str) + 1) так работает
+1 здесь лишний. Собственно как и strle(str)
C++
1
while(str[i] != ' ' && str[i] != '\0')
Цитата Сообщение от vozup Посмотреть сообщение
Єтот код сильно плохой?
Достаточно. Но если исправите следующую ошибку
C++
1
i++; // при s[i] == '\0', перепрыгиваем '\0' и выходим за пределы массива
то в принципе будет работать.
Yandex
Объявления
09.01.2014, 12:37     Количество повторений слова в строке
Ответ Создать тему
Опции темы

Текущее время: 20:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru