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

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

Войти
Регистрация
Восстановить пароль
 
Ilnurvampire
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 18
#1

Удаление слова из текста - C++

25.04.2013, 13:23. Просмотров 438. Ответов 0
Метки нет (Все метки)

Даны текстовый файл и слово. Напечатать те строки файла, которые содержат данное слово без этого слова.
Написал прогу которая удаляет из строки лишь первое вхождение слова. Как сделать, чтобы она удаляла слово, если оно в строке встречается несколько раз.
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <vector>
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
    char slovo[50];
    
   FILE * pFile;
   FILE *pFile2;
   char buffer [100];
   char a[50][30]; 
   int len,j=0, k=0;
   int count=0;
   pFile = fopen ("myfile.txt" , "r");
   if (pFile == NULL) perror ("Error opening file");
   else
   {
     while ( ! feof (pFile) )
     {
       if ( fgets (buffer , sizeof(buffer) , pFile) == NULL ) break;
       fputs (buffer , stdout);
       }
     fclose (pFile);
   }
   cout<<"\nВведите слово для поиска : ";
   cin>>slovo;
   pFile = fopen ("myfile.txt" , "r");
   pFile2=fopen("myfile2.txt","w");
   if (pFile == NULL) perror ("Error opening file");
   else
   {
     while ( ! feof (pFile) )
     {
       if ( fgets (buffer , sizeof(buffer) , pFile) == NULL ) break;
       
       len=strlen(buffer);
       for (int i=0; i<len; i++)
       {
           if(buffer[i]!=' ' && buffer[i]!=',' && buffer[i]!='.'    && buffer[i]!='\n')
           {
               a[j][k]=buffer[i];
               k++;
           }
             else
             {
                  if (k!=0)
               {
            a[j][k]='\0';
            j++;
            k=0;
               }
             }
       }
       for (int l=0; l<j;l++)
   {
       if (strcmp(a[l],slovo)==0) 
       {
           fputs(buffer,pFile2);
           count++;
       break;
   }
   }
       j=0;
       }
     fclose (pFile);
     fclose(pFile2);
   }
   string stroka;
   string slovo_str;
   slovo_str.assign(slovo);
   int found;
   pFile2=fopen("myfile2.txt","r");
   if (pFile2 == NULL) perror ("Error opening file");
   else
   {
     while ( ! feof (pFile2) )
     {
       if ( fgets (buffer , sizeof(buffer) , pFile2) == NULL ) break;
     { 
      stroka.assign(buffer);//конвертирование char в string
      found=stroka.find(slovo_str);
      stroka.erase(found,slovo_str.length());
      cout<<stroka;
     }
       }
     fclose (pFile2);
   }
   if (count==0) cout<<"Данное слово в тексте не найдено";
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 13:23     Удаление слова из текста
Посмотрите здесь:

Редактирование произвольного текста: удаление слова с заданным номером - C++
написать программу, которая редактирует произвольный текст, введенный с клавиатуры, удаляя из него слово с заданным номером(тоже с клавы...

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

Напечатать все слова из текста, отличные от слова hello. - C++
Добрый день товарищи!!!Выручайте!)Зачет по программированию завтра сдавать,а я не знаю как последнюю лабораторку сделать. Задание...

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

Удаление слова - C++
Вот есть небольшие мои наработки #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; using namespace...

Удаление текста из файла - C++
Есть файл. с помощью махинаций мы узнаем его длину (длина каждый раз разная) Вопрос как можно удалить скажем 30 символов начиная с КОНЦА ...

Удаление слов из текста - C++
Добрый день! есть задачка: Определить самое короткое слово в каждом предложении. Удалить эти слова из текста.Для обработки строк следует...

Удаление слова с номером N. (С++) - C++
Дана строка символов. Написать функцию для удаления слова с номером N. При написании программы необходимо использовать стандартные функции...

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

С++ удаление слова из строки - C++
Дана строка типа S='один два три четыре' удалить из строки последнее слово


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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