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

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

Войти
Регистрация
Восстановить пароль
 
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 307
#1

Как удалить слово из строки - C++

21.04.2014, 15:56. Просмотров 668. Ответов 7
Метки нет (Все метки)

в строке text[] есть набор слов
в строке word[] слово которое нужно удалить
как удалить ?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    char word[] = "const";
    char text[] = "werer float const void int do da char";
    int position[2], t = 0, l = 0, j = 0, f = 0;
    position[1] = -1;
    for (int i = 0; i < strlen(text) + 1; i++)
    {
        if (text[i] == ' ' || i == strlen(text))
        {
            position[l] = i;
            l++;
        }
        if (l == 1)
        {
            if ((position[0] - 1) - position[1] == strlen(word))
            {
                for (j = position[1] + 1; j < position[0]; j++, t++)
                {
                    if (text[j] != word[t])
                    break;
                    f++;
                }
                if (f == strlen(word))
                {
                    for (j = position[1] + 1; j < position[0]; j++)
                    cout<<text[j];// - слово которое находит программа
                }
                f = 0;
            }
            position[1] = position[0];
            l = 0, t = 0;
        }
    }
    //cout << text; - выводит всю строку
    _getch();
    return 0;
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
21.04.2014, 16:30     Как удалить слово из строки #2
может использовать string вместо char[]?

Добавлено через 3 минуты
тогда будет:
C++
1
2
3
4
    size_t pos = text.find(word);
    if(pos != string::npos){
        text.erase(pos, word.length());
    }
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 16:43  [ТС]     Как удалить слово из строки #3
в моей задачи нужно использовать только чар
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
21.04.2014, 17:15     Как удалить слово из строки #4
из массива char ни как не удалишь. можно заменить на пробелы к примеру. Если удалять то нужно использовать char*. char* можно использовать в программе?
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 17:52  [ТС]     Как удалить слово из строки #5
да можно, можно использовать char* как угодно
можно использовать и string главное чтобы text,word были chat и в конечном результате вывести text без слова const
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
21.04.2014, 18:24     Как удалить слово из строки #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот такой изврат без string:
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void replace(char* text, char* word)
{
    char* buffer = new char[512];
    strcpy(buffer, text);
    int pos = strstr(buffer, word) - buffer;
    while(pos > 0) {
        strcpy(buffer + pos, buffer + pos + strlen(word));
        pos = strstr(buffer, word) - buffer;
    }
    memset(text, 0, strlen(text));
    strcpy(text, buffer);
 
    delete[] buffer;
}
 
int main()
{
    char word[] = "const";
    char text[] =  "werer float const void int const do da char";
    
    std::cout << "text before = \"" << text << "\"" << std::endl;
    replace(text, word);
    std::cout << "text after = \"" << text << "\"" << std::endl;
 
    system("pause");
 
    return 0;
}
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 18:39  [ТС]     Как удалить слово из строки #7
так подходит спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 18:43     Как удалить слово из строки
Еще ссылки по теме:

Строки. Удалить каждое второе слово C++
Удалить слово из строки C++
Удалить определенное слово из строки C++
Как вставить слово в строку или удалить из строки? C++
C++ Удалить каждое четное слово из строки

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

Или воспользуйтесь поиском по форуму:
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
21.04.2014, 18:43     Как удалить слово из строки #8
эх. только функцию назвать не replace а erase...
Yandex
Объявления
21.04.2014, 18:43     Как удалить слово из строки
Ответ Создать тему
Опции темы

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