【发布时间】:2018-03-18 18:15:55
【问题描述】:
我运行这个测试:
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~
我不认为这是打印本身的问题,因为我注意到一些比较从 char 数组生成的字符串的测试没有通过,我最终这样做了,我不知道为什么。所以感觉确实“组合”字符串最终没有预期的内容。
“常规”可执行文件(不是 gtest)中的相同代码打印出预期的内容(没有奇怪的补充字符的 3 个字符)。
【问题讨论】:
标签: c++ string char googletest