Функция strstr() и "\r\n"

const char * strstr ( const char * str1, const char * str2 );
      char * strstr (       char * str1, const char * str2 );

Возвращает указатель на первое вхождение str2 в str1 или нулевой указатель, если str2 не является частью str1

Допустим char* str2=new char(5000) объявляется так, и символы из файла считываются в str2,

Как работает strstr, если str2 содержит несколько\r' или же '\n'персонажи Остановится ли он, как только попадет\n' или же '\r'или это продолжается? Кроме того, если это продолжается, есть ли способ остановить функцию в определенный момент str2?

2 ответа

Решение

Это продолжается до конца строки ('\0')

strstr() Функция останавливается на и возвращает первый символ в str1 где строка str2 найден. Итак, если ищете str2 = "\r\n";, он вернет указатель на первый\rза которым сразу следует\n". Если он встречает\r"сопровождается чем-то другим, чем"\n', это игнорирует это'\r". Функции прекращают поиск только тогда, когда они находят нужную строку или когда они сталкиваются с NUL '\0' в str1, отмечая конец строки.

Если вы ищете первый символ в наборе символов "\r\n"то вам нужно посмотреть на strspn() и / или strcspn() функции.

Другие вопросы по тегам