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

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

Восстановить пароль Регистрация
 
Pokemon1
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 6
07.10.2012, 15:21     Удалить слово из строки #1
Можете помочь написать программу на С++ с функцией и указателями чтобы удалить слово small из строки This is a small string. Чтобы результатом было This is a string. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 15:21     Удалить слово из строки
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cmath
Модератор
 Аватар для cmath
2415 / 1634 / 132
Регистрация: 11.08.2012
Сообщений: 3,252
Завершенные тесты: 5
07.10.2012, 17:44     Удалить слово из строки #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
// удаляет из строки str n символов, идущих после символа с номером pos
// ничего не делает, если pos + n больше числа символов в строке
// для работы функции нужно подключить string.h 
//чтобы удалить n символов надо будет написать <название строки>=Erase(<название строки>,<позиция от начала строки>, n)
char* Erase(char *str, int pos, int n) {
    char *buff;
    int i = 0, len;
    len = strlen(str); // нашли длину строки
 
             if (len >= pos + n)
    {
        buff = new char[len - n];
        while(i != pos) // сдвигаем "манипулятор" i до положения pos
        {
            buff[i] = str[i]; // при этом копируем содержимое строки в буфер
            i++;
        }
        while(i != len - n) // просто копируем символы из строки в буфер, пропуская n штук
        {// которые идут после pos
            buff[i] = str[i+n];
            i++;
            if(i == len - n)buff[i] = '\0'; // обрезаем строку в буфере.
        }
        str = buff; // копируем содержимое буфера в строку      
    }
    return str;// возвращаем строку
}
чтобы стереть конкретное слово напишите функцию, которая найдёт его позицию в строке.
З.Ы. delete нету потому, что при выходе из функции всё объявленное там "барахло" высвобождается автоматически. (кст использование delete у меня приводило к сообщению о нехорошем блоке памяти
Yandex
Объявления
07.10.2012, 17:44     Удалить слово из строки
Ответ Создать тему
Опции темы

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