[問題] 抓出中文字串中的字元

看板C_and_CPP (C/C++)作者 (cat)時間15年前 (2010/07/04 17:05), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
使用vc2005 目的是要判斷我輸入的某字串中 每個字在.txt中出現在哪個行 大概的方法是將文字檔一行一行讀下來 再判斷 程式截部份如下 ifstream ifs; ifs.open("FILE.txt"); string inputsen="你我他"; int count=0; for(int i=0;i<inputsen.length();i++) { string sen; while(getline(FILE,sen)) { count++; if(sen.find(inputsen[i])!=string::npos) cout<<count; } } 可是 inputsen[i]抓出來的是一個數字 >"< 而不是中文字 請問我要如何抓出inputsen中的每個中文字呢 ? ^^" 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.3.112 ※ 編輯: catshadow 來自: 134.208.3.112 (07/04 17:10)

07/04 17:17, , 1F
請自己觀察inputsen.length()真正的值是多少(不是3)。
07/04 17:17, 1F

07/04 18:05, , 2F
了改 謝哩 我用substr(起始位置,2)就可以抓出來了^^"
07/04 18:05, 2F

07/04 18:10, , 3F
你的程式碼看起來只能比對 "你" 這個字
07/04 18:10, 3F

07/04 20:45, , 4F
除非你保證你每個字都是全形 否則這樣一定會出問題
07/04 20:45, 4F

07/04 20:46, , 5F
改用支援unicode的函式庫吧! 例如wchar wstring
07/04 20:46, 5F

07/04 20:46, , 6F
如此一來也不需要用 substr(i,2)
07/04 20:46, 6F
文章代碼(AID): #1CC4x972 (C_and_CPP)
文章代碼(AID): #1CC4x972 (C_and_CPP)