![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 16.12.2011
Сообщений: 2
|
![]()
Доброй ночи.
Имеется программа: Код:
2)( ( pos = s1.find(s2) ) != std::string::npos ) s1.erase(pos, s2.size()); Можете объяснить что здесь происходит? |
![]() |
![]() |
![]() |
#2 | |
Пользователь
Регистрация: 13.11.2011
Сообщений: 24
|
![]() Цитата:
2) s1.find(s2) ищет вхождение s2 в s1 и возвращает номер символа строки s1 - откуда начинается вхождение s2 (символы считаются с нуля). Результат помещается в pos. string::npos - это значение возвращается функцией find(), если вхождение не обнаружено. То есть в первой строке мы проверяем, входит ли подстрока s2 в строку 1, сравнивая pos с string::npos. Функция erase удаляет символы, начиная с номера в первом параметре, количество задаётся вторым параметром. Таким образом, мы удаляем символы, начиная с pos в количестве s2.size() - размер искомой ранее подстроки. Вывод: указанный код ищет подстроку в строке и вырезает её, в результате длина всей строки сокращается. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление чисел из строки | kuy | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 30.10.2011 13:23 |
Удаление строки | женя2010 | Microsoft Office Excel | 9 | 23.04.2010 16:23 |
Удаление элементов строки s2 из строки s1 | Ueshua | Общие вопросы C/C++ | 4 | 20.12.2009 13:06 |
Удаление из строки | program123 | Помощь студентам | 4 | 21.05.2009 12:52 |
Удаление строки | Minton87 | Общие вопросы Delphi | 4 | 07.05.2009 02:32 |