Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Юлия_nev
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 24
#1

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

30.06.2014, 17:17. Просмотров 426. Ответов 3
Метки нет (Все метки)

с нахождением слова проблем не возникает, а вот с удалением всех вхождений этого слова проблема!
задание:Найти самое длинное слово сообщения и удалить все его вхождения.
вот что у меня получается :
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
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
 
int main();
int _tmain(int argc, _TCHAR* argv[])
{
    char string[200];
 
    cout << "vvedite stroky:\n";
    cin.getline(string,200);
 
    char * slovo = strtok (string," "),  // получаем первое слово
         * word = 0; // самое длинное слово
 
    int length = strlen(slovo);          // определяем длинну первого слова
 
    int max = 0; // самое длинное слово
 
      while (slovo != NULL)                         // пока есть слова
      {
          length = strlen(slovo);        // определяем длинну слова
 
          if (max < length )        // определяем самое длинное слово
          {
              max = length;
              word = slovo;              // сохраняем указатель на текущее слово
          }
 
          slovo = strtok (NULL, " "); // получаем следующее слово
      }
 
      cout << "samoe dlinnoe slovo: " << word
           << " , ego dlinna ravna: " << max
           << " simvolam " << endl;
      string.replace(string.find(word), word.size(), "");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 17:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (Удаление слова из строки) (C++):

удаление из строки слова - C++
Помогите написать полностью код программы для поиска в строке слова и его удаления Добавлено через 8 минут и ещё нужно вывести...

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

Удаление слова из строки - C++
Задание: Написать программу удаления последнего слова из строки Код: #include &lt;iostream.h&gt; #include &lt;string.h&gt; main() { char...

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

Строки. Удаление слова - C++
Удалить слово &quot;Kon&quot; входящее в строку. Язык обычный не Об.Ор-й. Помогите пожалуйста, а то я совсем запуталась(

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

3
nmcf
5532 / 4842 / 1641
Регистрация: 14.04.2014
Сообщений: 19,644
30.06.2014, 17:28 #2
string заменить на s, подключить <string>
C++
1
2
3
size_t i;
string str(s);
while((i = str.find(word)) != string::npos) str.replace(i, strlen(word), "");
0
Юлия_nev
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 24
30.06.2014, 19:45  [ТС] #3
Сделала как нужно... но беда , печаль в том что он удаляет полученное слово и все те которые следуют за ним... как с этим бороться?

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
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
 
int main();
int _tmain(int argc, _TCHAR* argv[])
{std::string mystring;
    char s[200];
 
    cout << "vvedite stroky:\n";
    cin.getline(s,200);
 
    char * slovo = strtok (s," "),  // получаем первое слово
         * word = 0; // самое длинное слово
 
    int length = strlen(slovo);          // определяем длинну первого слова
 
    int max = 0; // самое длинное слово
 
      while (slovo != NULL)                         // пока есть слова
      {
          length = strlen(slovo);        // определяем длинну слова
 
          if (max < length )        // определяем самое длинное слово
          {
              max = length;
              word = slovo;              // сохраняем указатель на текущее слово
          }
 
          slovo = strtok (NULL, " "); // получаем следующее слово
      }
 
      cout << "samoe dlinnoe slovo: " << word
           << " , ego dlinna ravna: " << max
           << " simvolam " << endl;
     size_t i;
     
string str(s);
while((i = str.find(word)) != string::npos) str.replace(i, strlen(word), "");
cout<< "polyhim:"<<s;
 
    return 0;
}
0
nmcf
5532 / 4842 / 1641
Регистрация: 14.04.2014
Сообщений: 19,644
30.06.2014, 20:35 #4
40-ю строку поставить сразу после cin.getline().
0
30.06.2014, 20:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 20:35
Привет! Вот еще темы с ответами:

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

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

Удаление последнего слова из строки - C++
Написать программу удаления последнего слова из строки. Заранее благодарю.

Класс строки (удаление из строки слова с заданным номером и символа с заданным номером) - C++
Описать в классе (строки) функции удаления из строки слова с заданным номером и символа с заданным номером. Каждая функция возвращает новую...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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