這樣做的好方法是什麼?用char數組連接C++字符串
char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;
不能做直接string str = array + array2
,不能加2個指針。或者我應該這樣做
string str();
str += array;
str += array2;
這樣做的好方法是什麼?用char數組連接C++字符串
char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;
不能做直接string str = array + array2
,不能加2個指針。或者我應該這樣做
string str();
str += array;
str += array2;
我會寫:
string str = string(array) + array2;
需要注意的是你的第二個版本is not valid code。您應該刪除括號:
string str;
str += array;
str += array2;
最後,array
和array2
應const
char *
類型。
它不會將它追加到str? – user1112008
@ user1112008:我不知道我理解你的問題。 – NPE
我只需要粘連2個(或更多)字符數組到字符串。 – user1112008
有很多方法可以做到這一點:
string str(array);
str += array2;
或
string str = string(array) + array2;
甚至
string str = array + string(array2);
或字符串流:
stringstream ss;
ss << array << array2;
不,混合低級別和高級別類型並不好。 – usoban
順便說一句,這段代碼不再是有效的C++(使用C++ 11),並且即使在使用舊版C++來使用不推薦的非const char *文字時也應該生成警告。此外,由於[最令人頭疼的解析],第二個代碼無法編譯(http://stackoverflow.com/q/1424510/1968)。 –
@usoban:'std :: string'定義了從'char *'到'std :: string'的轉換。有時你有一個'char *'來處理,而且沒有辦法繞過它。 –