Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/47: Рейтинг темы: голосов - 47, средняя оценка - 5.00
26 / 26 / 15
Регистрация: 17.02.2014
Сообщений: 310

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

21.04.2014, 15:56. Показов 8999. Ответов 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2014, 15:56
Ответы с готовыми решениями:

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

Указатели, символьные строки и функции: удалить из строки слово с заданным номером
Функция удаляет из строки слово с заданным номером: не знаю как делать, сделал через swich case но нужно без них

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

7
110 / 85 / 55
Регистрация: 01.02.2014
Сообщений: 281
21.04.2014, 16:30
может использовать string вместо char[]?

Добавлено через 3 минуты
тогда будет:
C++
1
2
3
4
    size_t pos = text.find(word);
    if(pos != string::npos){
        text.erase(pos, word.length());
    }
1
26 / 26 / 15
Регистрация: 17.02.2014
Сообщений: 310
21.04.2014, 16:43  [ТС]
в моей задачи нужно использовать только чар
0
110 / 85 / 55
Регистрация: 01.02.2014
Сообщений: 281
21.04.2014, 17:15
из массива char ни как не удалишь. можно заменить на пробелы к примеру. Если удалять то нужно использовать char*. char* можно использовать в программе?
1
26 / 26 / 15
Регистрация: 17.02.2014
Сообщений: 310
21.04.2014, 17:52  [ТС]
да можно, можно использовать char* как угодно
можно использовать и string главное чтобы text,word были chat и в конечном результате вывести text без слова const
0
110 / 85 / 55
Регистрация: 01.02.2014
Сообщений: 281
21.04.2014, 18:24
Лучший ответ Сообщение было отмечено user-men как решение

Решение

вот такой изврат без 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
26 / 26 / 15
Регистрация: 17.02.2014
Сообщений: 310
21.04.2014, 18:39  [ТС]
так подходит спасибо!
0
110 / 85 / 55
Регистрация: 01.02.2014
Сообщений: 281
21.04.2014, 18:43
эх. только функцию назвать не replace а erase...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2014, 18:43
Помогаю со студенческими работами здесь

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

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

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

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

Удалить слово из строки
Доброго времени суток ! Помогите пожалуйста, желательно в С++ Задание. Разработать функцию, определяющую, встречается ли заданное...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru