Namespaces
Variants

std:: strcspn

From cppreference.net
Определено в заголовке <cstring>
std:: size_t strcspn ( const char * dest, const char * src ) ;

Возвращает длину максимального начального сегмента байтовой строки, на которую указывает dest , состоящего только из символов, не найденных в байтовой строке, на которую указывает src .

Название функции означает "дополнительный промежуток".

Содержание

Параметры

dest - указатель на анализируемую нуль-терминированную байтовую строку
src - указатель на нуль-терминированную байтовую строку, содержащую символы для поиска

Возвращаемое значение

Длина максимального начального сегмента, содержащего только символы, не найденные в байтовой строке, на которую указывает src .

Пример

#include <cstddef>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <string>
int main()
{
    std::string s = "abcde312$#@";
    const char* invalid = "*$#";
    const std::size_t valid_len = std::strcspn(s.c_str(), invalid);
    if (valid_len != s.size())
    {
        std::cout << std::quoted(s)
                  << " содержит недопустимые символы, начиная с позиции "
                  << valid_len << '\n'
                  << std::string(valid_len + 1, '-') << "^\n";
    }
}

Вывод:

"abcde312$#@" содержит недопустимые символы, начиная с позиции 8
---------^

Смотрите также

возвращает длину максимального начального сегмента, который состоит
только из символов, найденных в другой байтовой строке
(функция)
возвращает длину максимального начального сегмента, который состоит
только из широких символов, не найденных в другой широкой строке
(функция)
находит первое вхождение любого символа из набора разделителей
(функция)
находит первое вхождение символов
(публичная функция-член std::basic_string<CharT,Traits,Allocator> )