English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В процессе написания программы на 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,希望大家多多支持呐喊教程~