我有以下代码将字符串转换为char:
string tempLine = dataLine[studentIndex];
char str = tempLine.c_str();
但该行返回错误:“type char”的值不能用于初始化“char”类型的实体。
如何解决此问题?
答案 0 :(得分:2)
应该是:
const char *str = tempLine.c_str();
请注意,您不应该更改字符串的内容。通常,它不是使用C ++字符串的好方法。如果你真的必须将C ++字符串完全转换为C字符串 - 分配内存并使用strcpy
来复制数据,请不要直接使用C ++字符串缓冲区。
编辑:查看here了解C ++学习资源。
答案 1 :(得分:1)
您无法将const char*
返回的std::string::c_str()
转换为char
。变化:
char str = tempLine.c_str();
为:
const char* str = tempLine.c_str();
请注意,这不会将tempLine
中的字符复制到str
,str
只会引用tempLine
中的字符。