gpt4 book ai didi

C++ 将 const char * 与字符串连接,仅打印 const char *

转载 作者:行者123 更新时间:2023-11-30 00:47:19 25 4
gpt4 key购买 nike

我正在尝试计算一个 const char *

这就是我将 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 不打印?

提前致谢。

最佳答案

作为docs for c_str说,“返回的指针可能会因进一步调用修改对象的其他成员函数而失效。”这包括析构函数。

const char * tempScore = std::to_string(6).c_str();

这使得 tempScore 指向一个不再存在的临时字符串。你应该这样做:

std::string tempScore = std::to_string(6);
...
strcat(tempTextResult, tempScore.c_str());

在这里,您在继续存在的字符串上调用 c_str

关于C++ 将 const char * 与字符串连接,仅打印 const char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35275346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com