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

Строки : проверка на вхождение слова - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ матрица http://www.cyberforum.ru/cpp-beginners/thread67584.html
всем привет=) Написать и протестировать функцию для перестановки двух строк матрицы и определения максимальных элементов в каждой из этих строк народ помогите написать прогу,очень надо,на грани отчисления!!!
C++ Телефонный справочник. Не могу решить Ребят помогите пожалуйста. Задачку надо решить не сложную. У меня что-то не выходит.. Составить программу телефонный справочник, которая имеет меню: 1-добавление 2-поиск 3-завершение работы Команда "добавление" дописывает в файл-имя фамилия и номер телефона абонента. Если файла на диске нет, то программа должна создать его. В файле информация о каждом абоненте находиться в отдельной... http://www.cyberforum.ru/cpp-beginners/thread67563.html
Случайные числа C++
как выполнить генератор случайных чисел генерировал любое число и присваивал число переменной
C++ Ошибка в процессе компиляции - fatal error C1083
ДОБРЫЙ ВЕЧЕР ВСЕМ! Некоторое время назад у меня возникла необходимость изучить и овладеть навыками программирования на С++... Причем необходимость жизненно важная - трудоустройство на работу... Заранее хочу сказать, что никогда не изучал никаких языков, и про процесс программирования ничего толком не знаю, единственно что есть это некоторый навык работы с ActionScript, знание HTML и немного...
C++ подскажите в чем ошибка http://www.cyberforum.ru/cpp-beginners/thread67515.html
#include <vcl.h> #include <iostream.h> #include <math.h> #pragma hdrstop #pragma argsused double f(double); double Calculation(double,double,double); int main() { double a,b,E,S;
C++ В чем ошибка Я пытаюсь вывести элементы массива в обратном порядке, в чем моя ошибка Добавлено через 10 секунд #include <iostream> using namespace std; int main() { const int n=10; double array; cout<<"Input array\n"; for( int i=0; i<n; i++) подробнее

Показать сообщение отдельно
Dipso
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 25
26.11.2009, 12:58     Строки : проверка на вхождение слова
Доброе время суток. Прошу помочь посмотреть где я не так что сделал в такой задаче :
Дана строка, содержащая слова, разделенные одним или несколькими разделительными символами (пробелами, табуляторами), в начале строки и в конце строки также могут находиться разделительные символы. Сформировать новую строку на основе исходной строки, из которой удалены слова, встречающиеся в исходной строке только один раз. Оставшиеся слова разделяются одним пробелом. В начале строки и в конце строки не должно быть разделительных символов.

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
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
 
void DeleteSymbols(char* str)
{
        int i;
        for(i=0;str[i+1]!=0;i++)
        {
                str[i]=str[i+1];
        }
        str[i]=0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
        char strIn[255],strOut[255],strBuf[255],strBuf2[255];
        for(;;)
        {
                strOut[0]=0;
                printf("Vvedite stroku\n");
                gets(strIn);
         strcpy(strBuf2,strIn);     // <<<---
                if(strIn[0] == '0' && strIn[1] == 0) break;
                while(strIn[0]!=0)
                {
                        strBuf[0]=0;
                        for(;strIn[0]==' ' || strIn[0]=='\t'; DeleteSymbols(strIn));
                        strncpy( strBuf,strIn,strcspn(strIn," \t"));
                        strBuf[strcspn(strIn," \t")] = 0;
                        for(;!strspn(strIn," \t") && strIn[0]!=0;)
                                DeleteSymbols(strIn);
                                for (;strBuf2[0]==' ';DeleteSymbols(strBuf));  //  <<<----
              while(strBuf2[0]!=0)                              
                 {
                                          if (strstr(strBuf2,strBuf)==0)
                {
                                           strcat(strOut," ");
                                                  strcat(strOut,strBuf);
                 }
                        }                                                    //<<<---                                        
                       
                }
                printf("StrOut = %s\n",strOut);
        }
        return 0;
}
В цикле обозначенном стрелками прошу проверить на правильность написания. Хотел реализовать цикл на проверку вхождения этого слова. Вот на примере :
исходную строку копирую в strBuf2. вот например сама строка :
aa bbb cc bbb d
потом я в strBuf записываю первое слово : аа и удаляю его и исходной строки
и в цикле проверяю на вхождение из оставшейся строки :
bbb cc bbb d
если это слово не встретилось, то записываю его в результат

Вот как раз и возникла проблема с циклом, т.к. при запуске просто повисает (вроде бесконечный цикл или как то так)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru