一個C++問題 |
尚未結案
|
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
|
limeca
中階會員 發表:2 回覆:74 積分:60 註冊:2005-05-11 發送簡訊給我 |
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
哈囉,nick6562 我發現前幾天的一篇文章剛好可以用你的問題來驗證 參考: 中英混雜的字串處理函式
< href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=73730">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=73730
int main(int argc, char* argv[]) { AnsiString str; //字串 AnsiString buf; // 輸入字串 int no; // 輸入數字 int len; // 字串長度 cout << "輸入一個字串 = "; cin >> buf.c_str(); len = Len( buf.c_str() ); cout << "總共字數 = " << len << endl; cout << "輸入數字 = "; cin >> no; str = Mid(buf.c_str(), no,1); cout << str.c_str() << endl; system("pause"); return 0; }發表人 - fusung 於 2005/06/23 23:40:49
------
The first step toward proving things for yourself is to understand how others have done it before! |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
nick6562:可參考 http://delphi.ktop.com.tw/topic.php?topic_id=54017 【BCB】【問題】你好,請問要如何正確截取中英文混雜的String呢? 答題得分者為:andychang1690 整理如下: 其實不用到char,AnsiString 就可以做到: AnsiString S ; S=Chinese_SubString("今天是個好日子",1,1); // S="今" 所以你要寫一個副程式 // 字串,開始位置,字數 AnsiString Chinese_SubString(AnsiString Str,int i_Start,int i_Num) { int End_n=i_Start i_Num-1; // 你要抓取的總術字數 // 判斷最後一個字是否中文 if ( S[End_n] & 0x80) return Str.SubString(i_Start,i_num 1); // 是中文 else return Str.SubString(i_Start,i_num); // 英數字 } 夠簡單吧! 請參考 補充: 引用liangnet大說法 首先你要先了解一下雙字元編碼的規則! 雙字元的編碼第一個碼為0x80 ~ 0xFF 因此你在讀一個字元時判斷該碼是否為0x80 ~ 0xFF,若是則表示是雙字元編碼的第一碼! http://delphi.ktop.com.tw/topic.php?topic_id=54017 若你要問& 0x80 請見 http://delphi.ktop.com.tw/topic.php?topic_id=41267 引用taishyang版大的話 &做AND邏輯位元運算 &&做AND邏輯判斷 Albertz 大的話 &是bitwise 運算 &&是logical 運算Andy Chang 發表人 - andychang1690 於 2005/06/24 02:32:36
------
Andy Chang |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |