使用带有C库函数的C++字符串

Mon*_*tor 2 c++ string

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

externalEncryptionRawHolder[u] = atoi(parser.next()); 
Run Code Online (Sandbox Code Playgroud)

'parser'对象是一个字符串解析器,'next'方法返回一个字符串.我认为错误与'atoi'函数中的字符串不是常数这一事实有关......但我不确定.错误的要点是'无法将字符串转换为const char*'.如何让我的弦不变?任何帮助都将非常感激(顺便说一句,如果你想知道索引'你'是什么,这是在'for'循环内).

Set*_*gie 7

你必须调用c_str()string对象来获得const char*:

externalEncryptionRawHolder[u] = atoi(parser.next().c_str());
Run Code Online (Sandbox Code Playgroud)

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

const char* c = parser.next().c_str();
Run Code Online (Sandbox Code Playgroud)

因为c将指向由string返回者管理的内存parser.next(),它在表达式的末尾被销毁,因此c指向释放的内存.第一个例子是可以的,因为字符串直到atoi返回之后才被销毁.