[codeing小小心得]判斷字串長度

大家好  小弟再度來嘴砲了

一般而言 字串長度  在字元陣列下  大部分的人 應該都是用sizeof

不過....根據 expert C書中有提到 sizeof 在C 和 C++的不同。

採用

人體汽肛 - 風馳電掣, 人車一體 的例子

參考網址 http://descent-incoming.blogspot.tw/2013/01/c-character-literal-is-different-from-c.html

'a' type is int in c;
sizeof('a'): 4

'a' type is char in c++;
sizeof('a'): 1

小弟最近剛好在用C++的環境做字串判斷,一開始我給它寫成,類似以下例子。
std::string example (const char* value)
{
    std::string str;
    str.assign(value);
    count >> str.size()>>endl
}
後來想想不對 似乎太過於麻煩 既然我是在處理const char*的指標變數,那我就strlen(value)
就好了說。
C++ 和 C 真是不同的東西。

以上感謝大家收看  下台一鞠躬。

2013-03-26更新: C++ 的size() 和 length()幾乎是一樣的,不過也有可能例外 要檢查原代碼,至於當使用 str.size()的方式時,std::string str = "你好嗎"; 取得的長度是 9。
所以不建議在有中文字的狀況下使用,感覺易混亂。


留言