我正在使用它:
if(strstr(inData, respond) != NULL)
在CMD
内搜索字符串inData
。
问题是当新数据看起来像这样:
Reboot
CMD
strstr
找不到它,因为它会停止搜索新行的位置。
是否有一种优雅的方式(不使用花哨的功能,因为我无法克服它?)
答案 0 :(得分:4)
正如评论中所指出的,strstr不会停留在换行边界,而只停留在字符串终止符(\ 0)
以下是手册页中的相关部分:
说明 strstr()函数在字符串haystack中查找第一次出现的子串针。终止null 字节 (' \ 0')未进行比较。
所以假设是,CMD或inData中有一个空字节。 您应该调查this way或hexdump it中的字符串inData和CMD(由@BLUEPIXY建议)