[問題] 有關strstr()

作者: momo81 (毛毛)   2014-09-28 02:22:20
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
dev c
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
如程式碼
想請問有甚麼原因會這樣
謝謝
餵入的資料(Input):
strstr("This is a",讀取的資料);
預期的正確結果(Expected Output):
搜尋的到
錯誤結果(Wrong Output):
搜不到
程式碼(Code):(請善用置底文網頁, 記得排版)
FILE *fPtr = fopen("A.txt","r");
char *b;
char txtvalue[10];
fgets(txtvalue, 10, fPtr);
b=strstr("This is a",txtvalue);
if(b!=0)
{
printf("%s",b);
}
fclose(fPtr);
system("PAUSE");
return 0;
A.txt裡面的內容
is
a
b
這樣子的話 找不到
但是只要把 strstr("This is a",txtvalue);的txtvalue寫死成"is"
就找的到..
補充說明(Supplement):
作者: prismwu   2014-09-28 02:25:00
PO 你寫得出來 這邊不是占卜板...
作者: scwg ( )   2014-09-28 02:36:00
fgets 會連換行一起讀進來, 相當於 "is\n". 要手動把\n蓋掉
作者: PoorLoser (廢文製造機)   2014-09-28 02:45:00
http://www.cplusplus.com/reference/cstring/strstr/要比對的字串放後面看錯, 忘了它吧...
作者: scwg ( )   2014-09-28 07:30:00
改過的程式碼是什麼樣的? 用哪個作業系統? A.txt 有 BOM 嗎?我用 txtvalue[strlen(txtvalue) - 1] = 0; 找得到

Links booklink

Contact Us: admin [ a t ] ucptt.com