Строка C++ содержит подстроку

Stroka C Soderzit Podstroku



В C++ у нас есть строковый тип данных, и мы можем применять различные функции для выполнения различных задач со строками. Мы можем проверить, присутствует ли подстрока внутри исходной строки. Мы также можем сказать, что «строка содержит подстроку». В этом руководстве мы изучим методы, которые помогут нам найти «строка содержит подстроку». Функции find() и strstr() помогают нам выполнить эту задачу в программировании на C++.

Пример 1:

«iostream» и «string» — это заголовочные файлы, которые включены сюда, поскольку нам нужно работать со строками, а также вводить или выводить данные. Итак, мы должны включить сюда эти заголовочные файлы. После этого мы включаем пространство имен std с помощью ключевого слова using. Итак, нам не нужно помещать этот «std» со всеми функциями отдельно в наш код. Затем здесь вызывается функция «main()».







Теперь мы объявляем строку «str_1» и присваиваем этой переменной некоторые строковые данные. Затем мы также инициализируем еще одну переменную с именем «str_2» типа данных «строка» и присваиваем этой переменной «str_2» значение «like». Ниже мы используем ключевое слово bool для получения истинных или ложных результатов. Мы инициализируем «stringHasStr» этим типом данных «bool» и используем функцию «find()». При этом выполняется поиск «строка содержит подстроку». «str_1» — это полная строка, а «str_2» — подстрока.



Здесь мы также добавляем ключевое слово «npos», которое используется, чтобы показать, что в этой строке нет совпадений. Он проверяет, содержит ли строка подстроку, и сохраняет результат в этой логической переменной «stringHasStr».



Затем мы переходим к условию «if» и передаем переменную «stringHasStr» этому условию «if». Если результат, сохраненный в этой логической переменной, равен «истина», используется оператор после этого условия «if», где мы используем «cout» и отображаем найденную здесь строку. Но если в этой переменной bool сохраняется «ложный» результат, используется другая часть и отображается, что строка здесь не найдена.





Код 1:

#include
#include <строка>

использование пространства имен std;
int главный ( )
{
строка str_1 = «Мне нравится язык программирования C++» ;
строка str_2 = 'нравиться' ;
bool stringHasStr = str_1.find ( стр_2 ) ! = строка::npos;
если ( строкаHasStr ) {
расчет << 'Здесь мы находим строку, которая ' << стр_2 << конец;
}
еще {
расчет << «Строка не найдена» << конец;
}
возвращаться 0 ;
}



Выход:

Этот вывод показывает, что строка содержит подстроку, и отображает ее здесь. Мы проверяем это, используя функцию «find()».

Пример 2:

Мы включаем сюда три файла заголовков: «iostream», «string» и «cstring». Затем вызовите «main()» после размещения «пространства имен std». Теперь объявлена ​​строка «new_str» и назначены некоторые строковые данные.

Далее мы инициализируем вторую переменную типа данных «строка» под названием «sub_str» и присваиваем ей значение «очень». Затем мы помещаем «const char*». Таким образом, изменить значение указателя, чтобы он указывал на другое место в памяти, невозможно. Здесь мы объявляем переменную «FindingStr» как указатель «const char*». Мы инициализируем его с помощью метода «strstr()» и передаем обе строки вместе с функцией «c_str()», которая преобразует строку в массив символов, заканчивающийся нулевым значением. Этот метод «strstr()» помогает проверить, содержит ли строка «new_str» подстроку «sub_str» или нет. Затем у нас есть «if», в который мы добавляем «FindingStr». Если он находит подстроку в оригинале, выполняется оператор после «if», где мы используем «cout». Если подстрока не найдена, она переходит непосредственно к части «else» и печатает результат, который помещается после части «else».

Код 2:

#include
#include <строка>
#include

использование пространства имен std;
int главный ( )
{
строка новая_строка = «На улице идет дождь, и погода очень приятная». ;
строка sub_str = 'очень' ;
константный символ * ПоискСтр = стрстр ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
если ( ПоискStr ) {
расчет << 'Мы находим строку, и она такая: ' << суб_стр << конец;
}
еще {
расчет << «Строка не найдена» << конец;
}
возвращаться 0 ;
}

Выход:

Мы могли заметить, что данная строка содержит подстроку, поскольку она отображает оператор, который мы добавили после «if», и печатает здесь подстроку. Мы проверяем это с помощью функции «strstr()».

Пример 3:

Здесь мы инициализируем две строковые переменные: «myNewStr» и «mySubStr». Затем мы присваиваем некоторые строковые данные и объявляем две целочисленные переменные: «posOfStr» и «indexOfStr».

Ниже мы используем цикл while() и присваиваем функциональную переменную find() переменной indexOfStr внутри этого цикла while(). Мы передаем в эту функцию find() две переменные: «mySubStr» и «posOfStr». Затем мы помещаем ключевое слово «npos», которое проверяет, что результат функции «find» не равен «npos». После этого мы используем «cout», который увеличивает значение индекса на единицу и сохраняет его в переменной «posOfStr».

Код 3:

#include
#include <строка>

использование пространства имен std;
int главный ( ) {
строка myNewStr = «мы находим строку здесь» ;
строка mySubStr = 'нить' ;
интервал posOfStr = 0 ;
интервал indexOfStr;
пока ( ( indexOfStr = мояНоваяСтрока.найти ( мояСубStr, posOfStr ) ) ! = строка::npos ) {
расчет << 'Подстрока есть' << ''' << mySubStr << ''' << 'Найдено по индексу: ' << индексОфСтр << конец;
posOfStr = индексOfStr + 1 ;
}
возвращаться 0 ;
}

Выход:

Здесь показано, что данная строка содержит подстроку, а индексный номер этой строки равен «19», что также отображается в этом результате.

Пример 4:

В этот код мы включаем заголовочный файл «bits/stdc++.h». Теперь нам не нужно включать другие заголовочные файлы, поскольку они содержат все необходимые библиотеки. После вызова main() мы инициализируем переменные org_str и sub_str типа данных string. Затем мы добавляем условие «if», в котором используем функцию «strstr()». Эта функция ищет, содержит ли данная строка нужную подстроку. Затем мы добавляем оператор «cout», чтобы вывести информацию о том, что подстрока найдена здесь. Затем мы также добавляем часть «else», которая выполняется только тогда, когда условие «if» не выполнено или подстрока не найдена в строке.

После этого мы объявляем переменную «sub_str2» и присваиваем сюда строковые данные. Затем вставляется условие «if» и используется функция «strstr()». Этот метод проверяет, содержит ли предоставленная строка запрошенную подстроку. Затем результат печатается здесь с помощью команды «cout». Мы также включаем раздел «else», который запускается только в том случае, если условие «if» не выполнено или если подстрока не может быть найдена в строке.

Код 4:

#include
использование пространства имен std;
int главный ( ) {
строка org_str = «Язык программирования С++». ;
строка sub_str = «Программа» ;
если ( стрстр ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
расчет << «Здесь подстрока» << ''' << суб_стр << ''' << 'присутствует в' << org_str << конец;
}
еще {
расчет << «Подстрока отсутствует в строке». << конец;
}
строка sub_str2 = 'Джава' ;

если ( стрстр ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
расчет << «Здесь подстрока» << ''' << sub_str2 << ''' << 'присутствует в' << org_str << конец;
}
еще {
расчет << «В этой строке нет подстроки». << конец;
}
возвращаться 0 ;
}

Выход:

Результат первой функции «strstr()» показывает, что строка содержит подстроку, но результат второй функции «strstr()» показывает, что подстрока отсутствует в строке.

Заключение

В этом руководстве подробно рассматривается концепция «строка содержит подстроку». Мы рассмотрели два метода, которые помогают определить, содержит ли «строка подстроку». Мы объяснили функции «find()», а также функции «strstr()», которые C++ предоставляет здесь, в этом руководстве, для выполнения этой задачи. Мы демонстрируем уникальные примеры, на которых мы научились использовать эти функции для проверки того, содержит ли «строка подстроку».