我运行这个测试::不能从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