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

Обработка строк. Проверить, есть ли в тексте повторяющиеся слова - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка строк. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами http://www.cyberforum.ru/cpp-beginners/thread819725.html
Дана строка символов. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами.
C++ Пожалуйста, посоветуйте, что делать Здравствуйте!!! Мне надо написать программу для решения ГРГ(расчетно-графическая работа), только я не знаю как передавать с этой программы результат вычисления у Word. Я хочу использовать Word как документ, где идет описание решения задачи, блокнот не подойдет, потому, что надо использовать такие символы как интеграл и т. п... Я думаю, что надо написать функцию, например SendToWord(p, x ) - где p... http://www.cyberforum.ru/cpp-beginners/thread819723.html
C++ бинарный деревья
Привет всем! посоветуйте пожалуйста книги на тему бинарные деревья в которой очень очень много примеров ...
Как значение массива другому массиву? C++
Здравствуйте! Вот код: #include<iostream> using namespace std; const int Max = 15; void reversit(char); int main()
C++ Преобразовать строку, удалив из нее каждый символ "." http://www.cyberforum.ru/cpp-beginners/thread819720.html
Дана строка символов. Преобразовать строку, удалив из нее каждый символ "." . И повторив каждый символ, отличный от символа "." .
C++ Написать объявление и описание класса, который вычисляет выражение Написать объявление и описание класса, который вычисляет следующее выражение: t=(2*cos(x - pi/2))/(0.5 + sin^2*y)*(1+(z^2)/(3-z^2/5)). при x= 14.26, y= -1.22, z=3.5*10^-2. t= 0.564849. подробнее

Показать сообщение отдельно
SDev
43 / 41 / 10
Регистрация: 15.03.2013
Сообщений: 88
28.03.2013, 04:22     Обработка строк. Проверить, есть ли в тексте повторяющиеся слова
в данном случае программа нашла в тексте как минимум два повтора слова otto, сообщила об этом и завершила работу. я здесь не учел повтор слова, как часть другого: oto - moto. сейчас исправим.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#define MAXT 20  //максим. число слов
 
char text[256] ; 
char seps[]   = " ,\t\n";
char *token;
char *tokens[MAXT]; // массив слов
int it,i,f;
 
 
void main( void )
{
   printf( "Input text(limit 255):"); gets(text);
   
   printf("\nИсходный текст: %s",text);
   it=0; // счетчик найденных слов
   f=0;
   token = strtok( text, seps );
 
   while( token != NULL )
   {
    /* добавляем в массив найденных слов с проверкой */
     i=0;
     while( i < it )
     {
       if( strcmp(tokens[i],token) == 0 ) break;
        i++;
      }
 
     if( i == it )  // добавляем новое слово
    {
        if(it==MAXT){printf("\nв массиве нет места под слова"); break;}
 
        tokens[it]=(char*)malloc(strlen(token)+1);
        strcpy(tokens[it],token); 
        it++;
     }
     else { f=1; printf("\n Повтор слова: %s",token); break;} // нашли повтор слова - заканчиваем обработку
 
    
      /* взять следующее слово */
      token = strtok( NULL, seps );
   }
 
    if(f==0) printf("\nПовторов нет.");
 
    for(i=0; i < it ; i++) free(tokens[i]);
      
}
Проверено- работает. Находит первый повтор отдельного слова, сообщает и выходит.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru