logo

пошук рядка в C++

Рядок find використовується для пошуку першого входження підрядка у вказаному рядку, який викликається. Він повертає індекс першого входження підрядка в рядок із заданої початкової позиції. Стандартне значення початкової позиції – 0.

Це функція-член std::string клас.



Синтаксис:

size_t find (const string& str, size_t pos = 0); // for C++ Style Strings or size_t find (const char* s, size_t pos = 0); // for C-Style Strings>

Параметри:

    str : підрядок для пошуку. s : Підрядок, у якому потрібно шукати, поданий як рядок у стилі C. pos : початкова позиція, з якої має початися пошук рядка.

Повернене значення:



пасхальні яйця на android
  • Функція повертає індекс першого входження підрядка.
  • Якщо підрядок не знайдено, він повертає string::npos(string::pos є статичним членом із максимальним значенням для типу даних size_t).

Аналіз складності:

    Часова складність: O(N*M), де N — розмір рядка (str), а M — розмір підрядка, який шукається. Допоміжний простір: O(1)

приклад:

C++






// C++ program to demonstrate> // working of string.find()> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >string str1 =>'geeks'>;> > >// Find first occurrence of 'geeks'> >size_t> found = str.find(str1);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'geeks'.> >// Note here we pass> >// 'geeks' as C style string.> >char> arr[] =>'geeks'>;> >found = str.find(arr, found+1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }>

>

>

Вихід

First occurrence is 0 Next occurrence is 8>

Знайдіть появу персонажа

Ми можемо скористатися функцією find, щоб знайти в рядку один символ.

Синтаксис:

size_t find (const char c, size_t pos = 0);>

тут, в символ, який потрібно шукати.

приклад:

C++




// C++ program to demonstrate> // working of string find> // to find occurrence of> // a character> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >char> c =>'g'>;> >// Find first occurrence of 'g'> >size_t> found = str.find(c);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'g'> >found = str.find(c, found + 1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }>

>

>

java з розділенням рядка
Вихід

First occurrence is 0 Next occurrence is 8>

Пошук часткового рядка

Ми також можемо шукати частину заданого рядка.

Синтаксис:

size_t find (const char *str, size_t pos, size_t n);>

тут, п це кількість символів для відповідності.

приклад:

C++




// C++ program to demonstrate> // working of string find to> // search a string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> > >// Only search first 5 characters> >// of 'geeks.practice'> >size_t> found = str.find(>'geeks.practice'>,> >0, 5);> >if> (found != string::npos)> >cout << found << endl;> >return> 0;> }>

>

>

видалити angular cli
Вихід

0>