我想尝试一个常见问题*
这是我如何将int转换为字符串并将其与const char *连接
char tempTextResult[100];
const char * tempScore = std::to_string(6).c_str();
const char * tempText = "Score: ";
strcpy(tempTextResult, tempText);
strcat(tempTextResult, tempScore);
std::cout << tempTextResult;
打印时的结果是:分数:
有谁知道为什么6不打印?
提前致谢 .
2 回答
正如docs for c_str所说,"The pointer returned may be invalidated by further calls to other member functions that modify the object."这包括析构函数 .
这使得
tempScore
指向不再存在的临时字符串 . 你应该做这个:在这里,你在一个继续存在的字符串上调用
c_str
.您已将此帖标记为C .
一种可能的C方法:(未编译,未测试)