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

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

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

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

21.04.2014, 15:56. Просмотров 930. Ответов 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;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2014, 15:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как удалить слово из строки (C++):

Как вставить слово в строку или удалить из строки? - C++
Здравствуйте! Спрашиваю, так как не мог найти утвердительного ответа в поиске. Как вставить слово в строку или удалить из строки? То есть...

Удалить слово из строки - C++
Подскажите как вообще в принципе удалить слово из строки. Например мне нужно удалить последнее слово. Я посимвольно просматриваю строку,...

Удалить слово из строки - C++
С клавиатуры ввести символьную строку. Проверить, совпадает второе слово этой строки с его последним словом. Если да, то исключить из...

Удалить слово из строки - C++
Можете помочь написать программу на С++ с функцией и указателями чтобы удалить слово small из строки This is a small string. Чтобы...

Удалить слово из строки - C++
Нужно написать функцию, которая будет удалять слово из строки, которое начинаеться на указаную букву. Заранее спасибо.

Удалить слово из строки - C++
В строке найти и вывести на экран все слова максимальной длины, и удалить за ними следующее слово. Как удалить? Найти и вывести на экран...

7
Меорн
76 / 61 / 29
Регистрация: 01.02.2014
Сообщений: 208
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());
    }
1
user-men
23 / 23 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 16:43  [ТС] #3
в моей задачи нужно использовать только чар
0
Меорн
76 / 61 / 29
Регистрация: 01.02.2014
Сообщений: 208
21.04.2014, 17:15 #4
из массива char ни как не удалишь. можно заменить на пробелы к примеру. Если удалять то нужно использовать char*. char* можно использовать в программе?
1
user-men
23 / 23 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 17:52  [ТС] #5
да можно, можно использовать char* как угодно
можно использовать и string главное чтобы text,word были chat и в конечном результате вывести text без слова const
0
Меорн
76 / 61 / 29
Регистрация: 01.02.2014
Сообщений: 208
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;
}
1
user-men
23 / 23 / 8
Регистрация: 17.02.2014
Сообщений: 307
21.04.2014, 18:39  [ТС] #7
так подходит спасибо!
0
Меорн
76 / 61 / 29
Регистрация: 01.02.2014
Сообщений: 208
21.04.2014, 18:43 #8
эх. только функцию назвать не replace а erase...
1
21.04.2014, 18:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 18:43
Привет! Вот еще темы с ответами:

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

Удалить каждое четное слово из строки - C++
Задача: Удалить каждое четное слово из строки. Это то что надо получить в конце, но т.к. я пытаюсь разобраться, хотелось бы по подробнее...

Строки. Удалить каждое второе слово - C++
Например вводим : Dobruy vecher gorod Выводим : Dobruy gorod Заранее спасибо!

Удалить каждое четное слово из строки - C++
Удалить каждое четное слово из строки. Есть такое начало: #include &lt;iostream&gt; #include &lt;cstdio&gt; using namespace std; const int...


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

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

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