我試圖尋找使用一個的strstr行兩種不同的字符串。的strstr()搜索兩個不同的字符串在同一行
sBuffer = "This is app test"
s1= strstr (sBuffer, "This");
s2= strstr (sBuffer, "test");
printf("%s\n", s1); //prints - This is app test
printf("%s\n", s2); //prints - test
if (s1 && s2)
//do something
將s1預期輸出應該是字符串"This"
,但它正在打印s1的整個字符串。
S2然而被正確打印。
任何幫助表示讚賞。
編輯:儘管所有的答案都正確(upvoted所有答案),我接受dasblinkenlight的答案。這是因爲我意識到檢查布爾條件如下所示就足以滿足我的要求。感謝所有的答案。
if ((strstr (sBuffer, "This")) && (strstr (sBuffer, "test")))
//do something
關於如何獲得我期待的預期輸出的任何線索? – user32262
@ user32262'memcpy(some_buffer,retval_of_strstr,strlen(needle))'然後NUL終止'some_buffer'。 – 2013-06-03 10:28:40
那麼在這種情況下哪一個更好? strncpy()或memcpy()? – user32262