在包含新行的字符串中搜索?

时间:2016-10-02 12:31:10

标签: c

我正在使用它:

  if(strstr(inData, respond) != NULL)

CMD内搜索字符串inData

问题是当新数据看起来像这样:

Reboot
CMD

strstr找不到它,因为它会停止搜索新行的位置。 是否有一种优雅的方式(使用花哨的功能,因为我无法克服它?)

1 个答案:

答案 0 :(得分:4)

正如评论中所指出的,strstr不会停留在换行边界,而只停留在字符串终止符(\ 0)

以下是手册页中的相关部分:

  

说明          strstr()函数在字符串haystack中查找第一次出现的子串针。终止null   字节          (' \ 0')未进行比较。

所以假设是,CMD或inData中有一个空字节。 您应该调查this wayhexdump it中的字符串inData和CMD(由@BLUEPIXY建议)