Функция strcspn () в C / C ++

Опубликовано: 30 Декабря, 2021

Функция strcspn () в C / C ++ принимает в качестве входных данных две строки: string_1 и string_2 в качестве аргумента и выполняет поиск в строке_1 путем обхода любых символов, присутствующих в строке_2. Функция вернет длину строки_1, если ни один из символов строки_2 не найден в строке_1. Эта функция определена в заголовочном файле cstring.

Синтаксис:

size_t strcspn (константный символ * строка_1, константный символ * строка_2) 

Параметры: функция принимает два обязательных параметра, которые описаны ниже:

  • string_1: указывает строку для поиска
  • string_2: указывает строку, содержащую символы, которые нужно сопоставить

Возвращаемое значение: эта функция возвращает количество символов, пройденных в строке_1 перед любым из символов, совпадающих с строкой_2.

Нижеприведенные программы иллюстрируют вышеуказанную функцию:

Программа 1:

// C++ program to illustrate the
// strcspn() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// String to be travered
char string_1[] = "geekforgeeks456" ;
// Search these characters in string_1
char string_2[] = "123456789" ;
// function strcspn() traverse the string_1
// and search the characters of string_2
size_t match = strcspn (string_1, string_2);
// if matched return the position number
if (match < strlen (string_1))
cout << "The number of characters before"
<< "the matched character are " << match;
else
cout << string_1 <<
" didn't matched any character from string_2 " ;
return 0;
}
Выход:
Количество символов перед совпадающим символом - 12.

Программа 2:

// C++ program to illustrate the
// strcspn() function When the string
// containing the character to be
// matched is empty
#include <bits/stdc++.h>
using namespace std;
int main()
{
// String to be travered
char string_1[] = "geekforgeeks456" ;
// Search these characters in string_1
char string_2[] = "" ; // Empty
// function strcspn() traverse the string_1
// and search the characters of string_2
size_t match = strcspn (string_1, string_2);
// if matched return the position number
if (match < strlen (string_1))
cout << "The number of character before"
<< "the matched character are " << match;
else
cout << string_1 <<
" didn't matched any character from string_2 " ;
return 0;
}
Выход:
geekforgeeks456 не соответствует ни одному символу из строки_2
Хотите учиться на лучших видео и практических задачах, ознакомьтесь с Базовым курсом C для базового и продвинутого C.
C++ C