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

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

Восстановить пароль Регистрация
 
Elizabeth7
2 / 2 / 0
Регистрация: 26.03.2013
Сообщений: 24
28.03.2013, 14:51     Строки. Удалить указанное слово из текста #1
Удалить указанное слово из текста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 14:51     Строки. Удалить указанное слово из текста
Посмотрите здесь:

C++ Удалить каждое четное слово из строки
Удалить из строки предпоследнее и последнее слово в с++ C++
Удалить слово из строки C++
Удалить слово из строки C++
Удалить каждое четное слово из строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
28.03.2013, 15:20     Строки. Удалить указанное слово из текста #2
не очень, но все же работает правильно
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 <iostream>
#include <conio.h>
using namespace std;
int main()
{
    char s[] = "smth";  //исходная строка 
    char c = 't'; //удаляемый символ
    char c1 = 's'; //удаляемый символ
    cout << s << endl;//вывод строки
 
    //Удаление из строки s всех вхождений символа 'а'
    int i = 0;//индекс для исходной строки
    int j = i;//индекс для модифицированной строки
 
    //цикл модификации исходной строки
    while (s[i])//пока в строке не нулевой байт
    {
        //проверить текущий символ строки          
        if(s[i] != c) //если s[i] не равен 'a'
            //проверить текущий символ строки
        if(s[i] != c1) //если s[i] не равен 'a'
 
        //переписать текущий символ строки по новому индексу j
        // и  увеличить индекс j единицу
            s[j++] =  s[i];
        // и увеличить индекс i на единицу
            i++;
    }
     //запись нулевого байта в конец модифицированной строки
    s[j] = '\0';
 
    //вывод результата
 
    cout<< s << endl;
 
    getch(); 
    return 0;
 
}
нужно копировать только 2 строчки для каждой буквы
C++
1
char c = 't';
C++
1
if(s[i] != c)
Elizabeth7
2 / 2 / 0
Регистрация: 26.03.2013
Сообщений: 24
28.03.2013, 15:24  [ТС]     Строки. Удалить указанное слово из текста #3
Спасибо!
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
28.03.2013, 15:52     Строки. Удалить указанное слово из текста #4
Если установлен boost, то очень просто делается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <boost/algorithm/string.hpp>
 
int main() 
{
    std::string str = "Hello C++ world C++";
    boost::erase_all(str, "C++");
    std::cout<<str<<"\n";
 
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
28.03.2013, 16:10     Строки. Удалить указанное слово из текста #5
Да оно и без boost не дюже сложно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main() {
    std::string where = "jingle bells jingle bells jingle all the way";
    std::string what = "bells";
    
    std::cout << "Before: " << where << std::endl;
    
    for ( std::string::size_type pos = 0; ( pos = where.find(what, pos) ) != std::string::npos; )
        where.erase(pos, what.length());
    
    std::cout << "After:  " << where << std::endl;
    
    return 0;
}
Yandex
Объявления
28.03.2013, 16:10     Строки. Удалить указанное слово из текста
Ответ Создать тему
Опции темы

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