[問題] 有關C的字串比較問題

看板C_and_CPP作者 (瑞樹啊瑞樹)時間4年前 (2020/04/15 23:07), 4年前編輯推噓3(3010)
留言13則, 7人參與, 4年前最新討論串1/1
因為平常都是使用C++的緣故, 所以對於C有點不熟悉 我想要檢查一個字串內是不是含有換行符號 因此我這樣寫 for(字串) if(yytext[i]=='\n') …… yytext 是我想要檢查的字串 但是結果卻不如我的預期 對於上述寫法,有警告訊息 comparison between pointer and integer 因此我有試圖改寫成 for(字串) if(&yytext[i]=='\n') …… 但是仍然有一樣的警告, 有上網找過這類問題了, 但是都沒有看到跟我一樣的問題 輸入: “/* djkslslskkdkf */” 預期輸出: “/* (找到換行符號) djkslslskkdkf (找到換行符號) */” 實際輸出: “/* djkslslskkdkf */” 註: 後來我又重新編譯過一邊, 結果就好了,我一行都沒改, 所以可能是編譯器的問題(? ----- Sent from JPTT on my Samsung SM-J700F. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.50.185.43 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1586963260.A.9BA.html

04/15 23:39, 4年前 , 1F
strcmp
04/15 23:39, 1F

04/15 23:39, 4年前 , 2F
我好像誤會你的意思了,不要理一樓
04/15 23:39, 2F
※ 編輯: Billeve (110.50.185.43 臺灣), 04/16/2020 00:00:22

04/16 00:01, 4年前 , 3F
雖然不知道為什麼對了,但是我還是想確定一下我這種寫法
04/16 00:01, 3F

04/16 00:01, 4年前 , 4F
是對的嗎?
04/16 00:01, 4F

04/16 00:14, 4年前 , 5F
沒有完整原始碼不好確認,我猜你一開始應該打成雙引號?
04/16 00:14, 5F
可是我是整個專案沒有改重新編譯欸,覺得玄

04/16 00:18, 4年前 , 6F
yytext 宣告成什麼型態?
04/16 00:18, 6F

04/16 04:15, 4年前 , 7F
應該是char*的型態
04/16 04:15, 7F

04/16 07:56, 4年前 , 8F
如果是在 windows 下的話,換行符號是兩個字元
04/16 07:56, 8F

04/16 08:50, 4年前 , 9F
回樓上windows不一定是\n\r,有時候只有\n
04/16 08:50, 9F
※ 編輯: Billeve (110.50.185.43 臺灣), 04/16/2020 09:09:11

04/24 14:27, 4年前 , 10F
可以貼一下完整的code,yytext宣告成什麼還有for的條
04/24 14:27, 10F

04/24 14:27, 4年前 , 11F
件,如果yytext宣告成char *的話第一種寫法應該是沒問
04/24 14:27, 11F

04/24 14:27, 4年前 , 12F
題的
04/24 14:27, 12F

04/24 14:28, 4年前 , 13F
而且也不知道你用甚麼編譯器下了甚麼編譯指令XD
04/24 14:28, 13F
文章代碼(AID): #1UboCycw (C_and_CPP)