English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Пример кода поиска подстроки в строке C++

В процессе написания программы на C++, всегда приходится сталкиваться с необходимостью поиска небольшой подстроки в строке. Для C мы часто используем функции strstr() или strchr(). А для C++ string мы обычно используем find().

C++: #inlcude<string>
C: #include<string.h>

find():В строке выполняется поиск указанного отдельного символа или массива символов. Если найдено, то возвращается начальная позиция первого совпадения; если не найдено соответствующее содержимое, то возвращается string::npos.

find_first_of():В целевом ряду выполняется поиск, возвращается позиция первого символа, соответствующего любому символу из заданной группы символов. Если не найдено соответствующее содержимое, то возвращается npos.

find_last_of():В целевом ряду выполняется поиск, возвращается позиция последнего символа, соответствующего любому символу из заданной группы символов. Если не найдено соответствующее содержимое, то возвращается npos.

find_first_not_of():В строке的目标ном查找, возвращает индекс первого элемента, который не совпадает с любым символом из указанной группы. Если такой элемент не найден, то возвращает npos.

find_last_not_of():В строке的目标ном查找, возвращает индекс наибольшего элемента, который не совпадает с любым символом из указанной группы. Если такой элемент не найден, то возвращает npos.

rfind(): Поиск указанного символа или группы символов в строке от конца до начала. Если находит, то возвращает начало первого соответствия; если не находит, то возвращает npos.

find(string, int):Первый параметр указывает на символ, который нужно найти, а второй параметр указывает на то, с какой позиции в строке начинать поиск (по умолчанию позиция 0).

Пример: Поиск строки:

#include "stdafx.h"
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string T;// исходная строка
string P;// шаблон
while(cin>>T>>P)
{ 
int count=0;
int begin=-1;
while((begin=T.find(P,begin+1))!=string::npos)
{
count++;
}
cout<<count<<endl;
}
int z;
cin>>z;
return 0;
}

Вот и все, что я хотел показать вам с примерами кода поиска и соответствия строки C++ string,希望大家多多支持呐喊教程~

Основной учебник
Рекомендуем к просмотру