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

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

Войти
Регистрация
Восстановить пароль
 
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
#1

Удалить из строки все подстроки str2 - C++

21.02.2014, 01:42. Просмотров 516. Ответов 2
Метки нет (Все метки)

Ребят, нужна помощь. Написать программу, которая считывает с клавиатуры 2 строки (str1 & str2). Нужно из str1 удалить все подстроки str2. Например:
str1: privet poka privetik
str2: pr
Результат: ivet poka ivetik
Получается только это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 using namespace std;
int main()
{                   setlocale( LC_ALL,"Russian" );
string str2, str1;
int i,k1,k2,n,n2=0,z=0;
   cout<<"Введите str1: "; getline(cin,str1); cout<<"  Кол-во символов: "<<str1.length()<<endl;
      cout<<"Введите str2: "; getline(cin,str2); cout<<"  Кол-во символов: "<<str2.length()<<endl; cout<<endl;
      k1=str1.length();
k2=str2.length();
for (i=0; i<k1; i++) {n=str1.find(str2,i);}
 
     cout<<str1<<endl;  
    system("PAUSE");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 01:42     Удалить из строки все подстроки str2
Посмотрите здесь:

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
Заменить в строке все вхождения подстроки strl на подстроку str2.

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

Удалить из строки все подстроки - C++
Помогите пожалуйста написать функцию удаляющую из строки s все подстроки s1 с испотльзованием &lt;string&gt; Добавлено через 1 минуту void...

Удалить из строки S все подстроки, совпадающие с S0 - C++
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0. Если совпадающих подстрок нет, то вывести строку S без изменений. ...

Нужно удалить все подстроки из исходной строки - C++
Добрый день! Задача &quot;Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, то вывести...

Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры) - C++
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка str2 с клавиатуры {Ha C++}

Удалить из строки каждое вхождение подстроки - C++
Удалить из строки s каждое вхождение подстроки s1. На С++ Дублирование тем запрещено правилами форума (п. 3.4). Не плодите...

В данном тексте подсчитать все вхождения подстроки «abc» и удалить их - C++
Задача программы такая: &quot;В данном тексте подсчитать все вхождения подстроки «abc» и удалить их. Вывести два варианта результата: с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
21.02.2014, 01:58     Удалить из строки все подстроки str2 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ALEXey__,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 using namespace std;
int main()
{                   
      setlocale( LC_ALL,"Russian" );
      string str2, str1;
      cout<<"Введите str1: "; getline(cin,str1); cout<<"  Кол-во символов: "<<str1.length()<<endl;
      cout<<"Введите str2: "; getline(cin,str2); cout<<"  Кол-во символов: "<<str2.length()<<endl; cout<<endl;
      size_t len = str2.length();
      size_t n = 0;
      while ((n = str1.find(str2)) != string::npos)
            str2.erase(n, len);
 
     cout<<str1<<endl;  
    system("PAUSE");
    return 0;
}
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
21.02.2014, 11:12  [ТС]     Удалить из строки все подстроки str2 #3
metaluga145, не работает=(
Кликните здесь для просмотра всего текста

Удалить из строки все подстроки str2


Добавлено через 6 минут
metaluga145, теперь работает) Спасибо=) Нужно же удалять из str1, а не из str2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 using namespace std;
int main()
{                   
      setlocale( LC_ALL,"Russian" );
      string str2, str1;
      cout<<"Введите str1: "; getline(cin,str1); cout<<"  Кол-во символов: "<<str1.length()<<endl;
      cout<<"Введите str2: "; getline(cin,str2); cout<<"  Кол-во символов: "<<str2.length()<<endl; cout<<endl;
      size_t len = str2.length();
      size_t n = 0;
      while ((n = str1.find(str2)) != string::npos)
      {str1.erase(n, len);}
 
     cout<<str1<<endl;  
    system("PAUSE");
    return 0;
}
Ответ Создать тему
Опции темы

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