看板 C_and_CPP 關於我們 聯絡資訊
小弟是從網路上課程自學C語言一個月的新手 學到字串的地方有個小疑惑 就是要如何解讀所讀入的字串? 例如輸入"one" 就執行XXX 輸入"two" 就執行XXX 不能直接用 if (string == "one ") 這樣嗎? 我google後可以用strcspn 但總覺得應該有更簡單直覺的方法? 所以上來請教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.77.143 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1413904929.A.839.html
Feis: 用 C++ 10/21 23:23
diabloevagto: memcmp 10/21 23:30
hbzncu: 可以用enum的方式去做! 10/21 23:59
flydragon198: strcmp可以比對 10/22 00:53
MOONRAKER: 你在用C事情就不會都如你想的這麼簡單。 10/22 01:05
cjcat2266: 方法很多種,但是絕對不是 if (string == "one") 10/22 06:39
cjcat2266: 想想看變數的type就可以明白了,type是char * 10/22 06:39
cjcat2266: string指到的是使用者輸入的buffer,"one"則是指向 10/22 06:40
cjcat2266: constant string pool裡面的位址,同樣的你也不能用 10/22 06:41
cjcat2266: 這個方法來比較兩個字串,就算兩者指到的char陣列的 10/22 06:41
cjcat2266: 字串值一樣,但是記憶體位址不同,等號就不會成立 10/22 06:42
jimmg35: if應該也可以吧 10/22 12:35
jammy50605: strcmp好用 10/23 12:13
loveflames: 不要用memcmp比字串,否則寫socket的時候... 10/23 14:36