大家好 小弟再度來嘴砲了
一般而言 字串長度 在字元陣列下 大部分的人 應該都是用sizeof
不過....根據 expert C書中有提到 sizeof 在C 和 C++的不同。
採用
'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。
所以不建議在有中文字的狀況下使用,感覺易混亂。
一般而言 字串長度 在字元陣列下 大部分的人 應該都是用sizeof
不過....根據 expert C書中有提到 sizeof 在C 和 C++的不同。
採用
人體汽肛 - 風馳電掣, 人車一體 的例子
參考網址 http://descent-incoming.blogspot.tw/2013/01/c-character-literal-is-different-from-c.html
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。
所以不建議在有中文字的狀況下使用,感覺易混亂。
留言