strstr() 函数和“\r\n”
const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );
返回指向 str1 中首次出现的 str2 的指针,如果 str2 不是 str1 的一部分,则返回空指针
假设声明了 char* str2=new char(5000)
像这样,文件中的字符被读入str2
。
如果 str2
包含多个“\r
”或“\n
”字符,strstr 如何工作。一旦遇到“\n
”或“\r
”,它会停止还是继续?另外,如果它确实继续,是否有任何方法可以在 str2
中的某个点停止该函数?
const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );
Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1
Lets say char* str2=new char(5000)
is declared like this, and characters from a file are read into str2
.
How does strstr work if str2
contains multiple '\r
' or '\n
' chars. Does it stop once it hits a '\n
' or '\r
' or does it continue? Also if it does continue, is there any way to stop the function at a certain point in str2
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它一直持续到字符串末尾 (
'\0'
)It keeps going till the end of the string (
'\0'
)strstr()
函数在str1
中找到字符串str2
的位置处停止并返回第一个字符。因此,如果查找str2 = "\r\n";
,它将返回一个指向第一个 '\r
' 的指针,该指针后紧跟一个 '>\n
'。如果遇到“\r
”后跟“\n
”以外的内容,则会忽略该“\r
”。仅当函数找到所需的字符串或在str1
中遇到 NUL '\0
'(标记字符串的结尾)时,才会停止搜索。如果您正在查找字符集中的第一个字符
"\r\n"
,那么您需要查看strspn()
和/或strcspn() 函数。
The
strstr()
function stops at and returns the first character instr1
where the stringstr2
is found. So, if looking forstr2 = "\r\n";
, it will return a pointer to the first '\r
' which is immediately followed by a '\n
'. If it encounters a '\r
' followed by something other than '\n
', it ignores this '\r
'. The functions will only stop searching when they find the desired string or when they encounter a NUL '\0
' instr1
, marking the end of the string.If you are looking for the first character in the set of characters
"\r\n"
, then you need to look at thestrspn()
and/orstrcspn()
functions.