gpt4 book ai didi

c++ - 将 C++ 字符串与 C 库函数一起使用

转载 作者:太空狗 更新时间:2023-10-29 23:53:46 25 4
gpt4 key购买 nike

当我尝试在以下行中使用 atoi(const char*) 函数时发生错误...

externalEncryptionRawHolder[u] = atoi(parser.next()); 

'parser' 对象是一个字符串解析器,'next' 方法返回一个字符串。我认为该错误与“atoi”函数中的字符串不是常量这一事实有关……但我不确定。错误的要点是“无法将字符串转换为 const char *”。我怎样才能使我的字符串不变?任何帮助将不胜感激(顺便说一句,如果您想知道索引“u”是什么,这是在“for”循环中)。

最佳答案

您必须在 string 对象上调用 c_str() 以获得 const char*:

externalEncryptionRawHolder[u] = atoi(parser.next().c_str());

不过请注意,您不应该这样做:

const char* c = parser.next().c_str();

因为 c 将指向由 parser.next() 返回的 string 管理的内存,它在表达式的结尾,所以 c 指向释放的内存。第一个例子没问题,因为字符串直到 atoi 返回后才被销毁。

关于c++ - 将 C++ 字符串与 C 库函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9145182/

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