我運行這個測試::不能從char數組創建字符串?
TEST_F(CHAR_TESTS, wtf){
char letter[3] = {'A','B','C'};
char types[2] = {'o','s'};
char tmp[3];
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
for(int k=0;k<2;k++){
tmp[0]=letter[i];
tmp[1]=letter[j];
tmp[2]=types[k];
std::string combination(tmp);
std::cout << combination << std::endl;
}
}
}
}
出於某種原因,這種打印:
AAo~
AAs~
ABo~
ABs~
ACo~
ACs~
BAo~
BAs~
BBo~
BBs~
BCo~
BCs~
CAo~
CAs~
CBo~
CBs~
CCo~
CCs~
我不認爲它與印刷本身的問題,因爲我最終注意到後這樣做一些測試比較字符數組產生的字符串沒有通過,我不明白爲什麼。所以感覺確實是「組合」字符串不會達到預期的內容。
在「常規」的可執行文件(不是GTEST)打印出的期望是什麼(3個字符不奇怪的補充字符)相同的代碼。
或者'char tmp [4] =「」;' –
該死的,我剛纔讀了這個有點太快了:https://stackoverflow.com/questions/8960087/how-to-convert-a-char-array -to-A-字符串:「字符串類有一個構造函數以NULL結尾的C-字符串」,我跳過了「NULL結尾部分」。 – Vince
你也可以使用'的std :: string組合(標準::開始(TMP)的std ::結束(TMP));' – legalize