Пространства имён
Варианты
Действия

std::strcspn

Материал из cppreference.com
< cpp‎ | string‎ | byte
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Манипуляции со строками
Проверка строки
Манипуляции с памятью
Разное
 
Определено в заголовочном файле <cstring>
std::size_t strcspn( const char *dest, const char *src );

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

Имя функции означает "complementary span - дополнительный диапазон".

Содержание

[править] Параметры

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
---------^

[править] Смотрите также

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