2016-10-02 69 views
0

我使用這個:在包含新行的字符串中搜索?

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

搜索字符串CMDinData

問題是,當新的數據是這樣的:

Reboot 
CMD 

strstr不會找到它,因爲它停止搜索哪裏是一個新的生產線。 有沒有一種優雅的方式(不是使用奇特的功能,因爲我不能)克服它?

+3

'strstr'可以找到換行符(包含)。 'CMD'前面有一個非法字符。 (也許''\ 0'') – BLUEPIXY

+0

謝謝,我怎麼看不到?我在這裏展示的是inData打印。 – Curnelious

+0

十六進制轉儲'inData'。 – BLUEPIXY

回答

4

正如在評論中指出,的strstr不停止在新行的邊界,但只在字符串終結符(\ 0)

這裏是從該名男子頁的相關章節:

描述 strstr()函數在字符串haystack中查找第一次出現的子串針。不會比較終止空 字節 ('\ 0')。

因此,假設在CMD或inData之一中有空字節。 您應該調查this wayhexdump it(由@BLUEPIXY建議)中的字符串inData和CMD

相關問題