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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
ToyS
 Аватар для ToyS
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 44
23.04.2010, 16:42     Строки. Удаление слова #1
Удалить слово "Kon" входящее в строку.
Язык обычный не Об.Ор-й.

Помогите пожалуйста, а то я совсем запуталась(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2010, 16:42     Строки. Удаление слова
Посмотрите здесь:

C++ удаление из строки слова
C++ Удаление слова из строки
Удаление слова из строки C++
Удаление слова из строки C++
удаление слова из строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.04.2010, 06:52     Строки. Удаление слова #2
Про язык не понял, поясни.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.04.2010, 13:26     Строки. Удаление слова #3
kazak, без использования ООП
ToyS
 Аватар для ToyS
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 44
24.04.2010, 14:03  [ТС]     Строки. Удаление слова #4
да не ООП
то есть использовать не iostream,а stdio)
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.04.2010, 14:06     Строки. Удаление слова #5
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
#include <stdio.h>
#include <string.h>
 
int main()
{
   char str[80];
   char word[] = "Kon";
   int i, j, l;
 
   printf("Введите строку: ");
   fgets(str, 80, stdin);
   if (strstr(str, word))
   {
      l = strstr(str, word) - str;
      for (j = 0; j <= strlen(word); j ++)
         for (i = l; i < strlen(str); i++)
         {
            str[i] = str[i+1];
         }
      printf("%s\n", str);
   }
   else
       printf("Строка не содержит нужного слова\n");
}
ToyS
 Аватар для ToyS
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 44
24.04.2010, 14:18  [ТС]     Строки. Удаление слова #6
работает!) но не совсем верно оО т.е. удаляет по 5 букв и это не всегда слово "kon"
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
24.04.2010, 15:11     Строки. Удаление слова #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
#include <conio.h>
 
 
int main(){
    int i;
    std::string s1="function head kon explic";
    std::string s2;
    std::cout<<"Vvedite clovo kotoroe nado ydalit:: ";
    std::cin>>s2;
 
    i=s1.find(s2);
    if (i!=std::string::npos){
        std::cout<<"naideno clovo v pozicii= "<< i <<std::endl;
        s1.erase(i,s2.size());
        std::cout<<s1;
    }
    return 0;
}
ахх.. надоже без ооп( ну тогда не могу помоч
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.04.2010, 15:27     Строки. Удаление слова #8
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
#include <stdio.h>
#include <string.h>
 
int main()
{
   char str[80];
   char word[] = "Kon";
   unsigned int l = 0, i, j;
 
   printf("Ââåäèòå ñòîêó: ");
   fgets(str, 80, stdin);
   str[strlen(str)-1] = '\0';
   while (strstr(str+l, word))
   {
      l = strstr(str+l, word) - str;
      if ((str[strlen(word)+l] == ' ') || (l + strlen(word) == strlen(str)))
      {
         for (j = 0; j <= strlen(word); j++)
            for (i = l; i < strlen(str); i++)
               str[i] = str[i+1];
      }
      l += strlen(word);
   }
   printf("%s\n", str);
   getchar();
   return 0;
}
ToyS
 Аватар для ToyS
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 44
24.04.2010, 16:12  [ТС]     Строки. Удаление слова #9
Все равно так же... правда, теперь удаляет либо 4 буквы, либо 5
<Norton>
Отдыхающий:)
 Аватар для <Norton>
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
24.04.2010, 19:01     Строки. Удаление слова #10
Си знаю плохо, т.к. на С++)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[80], *word = "Kon", out[80]="", *tmp=0;
    fgets(s, 80, stdin);
    tmp = strtok(s, word);
    while (tmp!=NULL){
        strcat(out, tmp);
        tmp = strtok(NULL, word);}
    printf("%s", out);
    return 0;
}
Добавлено через 21 минуту
Вот последний вариант:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[80], *word = "Kon", out[80]="", *tmp=0;
    unsigned short int i;
    fgets(s, 80, stdin);
    tmp = strtok(s, word);
    while (tmp!=NULL){
        if (tmp[0] == ' '){
            for (i = 0; i<strlen(tmp)-1; i++)
                tmp[i] = tmp[i+1];
            tmp[strlen(tmp)-1] = '\0';}
        strcat(out, tmp);
        tmp = strtok(NULL, word);}
    printf("%s", out);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 20:15     Строки. Удаление слова
Еще ссылки по теме:

С++ удаление слова из строки C++
Удаление последнего слова из строки C++
C++ Удаление слова из строки

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

Или воспользуйтесь поиском по форуму:
ToyS
 Аватар для ToyS
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 44
24.04.2010, 20:15  [ТС]     Строки. Удаление слова #11
<Norton>, огромная вам, благодарность! все работает! =)

Спасибо всем, кто помогал)
Yandex
Объявления
24.04.2010, 20:15     Строки. Удаление слова
Ответ Создать тему
Опции темы

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