作者Billeve (瑞樹啊瑞樹)
看板C_and_CPP
標題[問題] 有關C的字串比較問題
時間Wed Apr 15 23:07:38 2020
因為平常都是使用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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1586963260.A.9BA.html
1F:→ james732: strcmp 04/15 23:39
2F:→ james732: 我好像誤會你的意思了,不要理一樓 04/15 23:39
※ 編輯: Billeve (110.50.185.43 臺灣), 04/16/2020 00:00:22
3F:→ Billeve: 雖然不知道為什麼對了,但是我還是想確定一下我這種寫法 04/16 00:01
4F:→ Billeve: 是對的嗎? 04/16 00:01
5F:→ LiloHuang: 沒有完整原始碼不好確認,我猜你一開始應該打成雙引號? 04/16 00:14
可是我是整個專案沒有改重新編譯欸,覺得玄
6F:推 ctrlbreak: yytext 宣告成什麼型態? 04/16 00:18
7F:→ Billeve: 應該是char*的型態 04/16 04:15
8F:→ Dinowchang: 如果是在 windows 下的話,換行符號是兩個字元 04/16 07:56
9F:推 qscgy4: 回樓上windows不一定是\n\r,有時候只有\n 04/16 08:50
※ 編輯: Billeve (110.50.185.43 臺灣), 04/16/2020 09:09:11
10F:推 justhit666: 可以貼一下完整的code,yytext宣告成什麼還有for的條 04/24 14:27
11F:→ justhit666: 件,如果yytext宣告成char *的話第一種寫法應該是沒問 04/24 14:27
12F:→ justhit666: 題的 04/24 14:27
13F:→ justhit666: 而且也不知道你用甚麼編譯器下了甚麼編譯指令XD 04/24 14:28