Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 24.05.2017
Сообщений: 87

Строка: удалить все html теги из входной строки

24.09.2017, 22:32. Показов 1795. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал вот такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using namespace std;
int main()
{
    string str = "<strong>text tebfdfdksf.</strong><a href=//www.example.com>fdsfsdfsdfds";
    int i = 0,i1 = 0;
    i=str.find("<");
    i1=str.find(">");
    string str1 =str.erase (i,i1+i+1);
    cout<<str1<<endl;
    
    int b = 0,b1 = 0;
    b=str.find("<",i);
    b1=str.find(">",i1+1);
    string str2 =str.erase (b,b1+b+1);
    cout<<str2<<endl;
    
    int c = 0,c1 = 0;
    c=str.find("<",b+1);
    c1=str.find(">",b1+1);
    string str3 =str.erase (c,c1+c+1);
    cout<<str3<<endl;
}
он удаляет html теги из строки
вопрос в следующем, если строка str динамическая и количество тегов постоянно меняется то код не сработает, как исправить эту проблему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2017, 22:32
Ответы с готовыми решениями:

Удалить все комментарии и теги из HTML файла
Есть задание: Написать сценарий для sed и awk для удаления тегов и комментариев HTML. Теги и комментарии могут быть многострочными....

Как удалить все теги img из html кода?
Ребят подскажите как удалить все теги img их html кода.

Работа с текстом. Необходимо удалить все HTML теги
Есть текст, но в нем очень не удобно расположены html теги. Если возможность удалить эти теги и оставить только читабельный текст? ...

7
0 / 0 / 2
Регистрация: 24.05.2017
Сообщений: 87
24.09.2017, 23:58  [ТС]
Цитата Сообщение от Atakai Посмотреть сообщение
std::string::reserve резервирует место под хранение
std::string::append добавляет символы в конец строки

Источник: http://ru.cppreference.com/w/c... sic_string
вы меня не совсем правильно поняли
я имел в виду что допустим стринг был такой
C++
1
string str = <strong>text tebfdfdksf.</strong><a href=//www.example.com>fdsfsdfsdfds
а потом стал таким
C++
1
string str = <strong>text tebfdfdksf.</strong><a href=//www.example.com>fdsfsdfsdfds string str = <strong>text tebfdfdksf.</strong><a href=//www.example.com>fdsfsdfsdfds</strong>ghjhkjhjkkj</strong>
то мой код уже не сработает
0
0 / 0 / 2
Регистрация: 24.05.2017
Сообщений: 87
25.09.2017, 01:40  [ТС]
Цитата Сообщение от Atakai Посмотреть сообщение
alex14058, вам надо удалять все теги, а не только три первых. Это можно сделать в цикле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
using namespace std;
int main()
{
    string str = "<strong>text tebfdfdksf.</strong><a href=//www.example.com>fdsfsdfsdfds</strong>ghjhkjhjkkj</strong>";    
    
    size_t posStart = 0;
    while ((posStart = str.find("<")) != std::string::npos)
    {
        size_t posEnd = str.find(">");
        str.erase(posStart, posEnd-posStart+1);
    }
    cout<<str<<endl;
}
спасибо большое, а не подскажите я правильно понимаю.функции поиска в строке возвращают npos, если требуемое значение найдено?
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
25.09.2017, 01:43
Цитата Сообщение от alex14058 Посмотреть сообщение
спасибо большое, а не подскажите я правильно понимаю.функции поиска в строке возвращают npos, если требуемое значение найдено?
npos возвращается, если значение не найдено.
0
0 / 0 / 2
Регистрация: 24.05.2017
Сообщений: 87
25.09.2017, 01:52  [ТС]
и вот в этой строке str.erase(posStart, posEnd-posStart+1); получается такое условие вырежи все от posStart '<' до posEnd-posStart+1 это количество вырезаемых элементов, зарание извините за банальные вопросы ,просто хочется разобраться и понять)
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
25.09.2017, 02:00
Цитата Сообщение от alex14058 Посмотреть сообщение
и вот в этой строке str.erase(posStart, posEnd-posStart+1); получается такое условие вырежи все от posStart '<' до posEnd-posStart+1 это количество вырезаемых элементов, зарание извините за банальные вопросы ,просто хочется разобраться и понять)
Именно так.
0
0 / 0 / 2
Регистрация: 24.05.2017
Сообщений: 87
25.09.2017, 04:44  [ТС]
Цитата Сообщение от lArtl Посмотреть сообщение
npos возвращается, если значение не найдено.
спасибо
грубо говоря если значение не найдено то цикл не сработает?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
25.09.2017, 13:56
не лучший способ вырезать html-теги.
если у меня будет такой тег:
<h1>Ololo < some text</h1>, то удалится не то, что задумывалось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2017, 13:56
Помогаю со студенческими работами здесь

Удалить все теги , кроме тега <a .>.</a> со страницы html. Результат вывести на экран
Здравствуйте , мне нужно выполнить следующее задание : Дан текст HTML-страницы (скачать по ссылке http://its.alnam.ru/kurs_11.txt). ...

Каким образом благодаря регулярному выражению можно удалить все html теги с string?
Вот допустим у нас есть string , который считал html файл, и он выглядит например так: &lt;html...

Удалить из входной строки все слова длина которых меньше L символов
Здравствуйте пользователи этого форума, мне нужна ваша помощь. Напишите программу на языке пролог для решения следующей задачи. ...

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru