将字符串转换为char的C ++不起作用

时间:2011-12-09 22:33:27

标签: c++ visual-studio

我有以下代码将字符串转换为char:

string tempLine = dataLine[studentIndex];
char str = tempLine.c_str();

但该行返回错误:“type char”的值不能用于初始化“char”类型的实体。

如何解决此问题?

2 个答案:

答案 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中的字符复制到strstr只会引用tempLine中的字符。