std::strcspn
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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>)
| |
Документация C по strcspn
| |