strcspn
Определено в заголовке <string.h> | ||
|---|---|---|
size_t strcspn( const char *dest, const char *src ); |
Возвращает длину максимального начального сегмента строки байтов, завершающейся нулём, на которую указывает dest, состоящего только из символов, не встречающихся в строке байтов, завершающейся нулём, на которую указывает src.
Поведение является неопределённым, если dest или src не указывают на строку байтов, завершающуюся нулём.
Параметры
| dest | - | указатель на строку байтов, завершающуюся нулём, для анализа |
| src | - | указатель на строку байтов, завершающуюся нулём, которая содержит символы, которые нужно искать |
Значение результата
Длина максимального начального сегмента, который содержит только символы, которые не встречаются в строке байтов, завершающейся нулём, на которую указывает src
Примечания
Имя функции означает «дополнительный разрыв», так как функция ищет символы, которые не встречаются в src, что является дополнением к src.
Пример
#include <string.h>
#include <stdio.h>
int main(void)
{
const char *string = "abcde312$#@";
const char *invalid = "*$#";
size_t valid_len = strcspn(string, invalid);
if(valid_len != strlen(string))
printf("'%s' contains invalid chars starting at position %zu\n",
string, valid_len);
}Вывод:
'abcde312$#@' contains invalid chars starting at position 8
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.24.5.3 Функция strcspn (стр. 368)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.21.5.3 Функция strcspn (стр. 331)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.11.5.3 Функция strcspn
См. также
| возвращает длину максимального начального сегмента, состоящего только из символов, присутствующих в другой строке байтов (функция) |
|
|
(C95) | возвращает длину максимального начального сегмента, состоящего только из широких символов, не встречающихся в другой широкой строке (функция) |
| находит первое расположение любого символа в одной строке в другой строке (функция) |
|
Документация C++ для strcspn |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/strcspn