我有以下代码将字符串转换成char:C++转换字符串为char不工作
string tempLine = dataLine[studentIndex];
char str = tempLine.c_str();
但这行返回一个错误:“类型的值‘恒定的char *’不能使用。初始化类型为 “字符” 的实体
我怎样才能解决这个问题?
我有以下代码将字符串转换成char:C++转换字符串为char不工作
string tempLine = dataLine[studentIndex];
char str = tempLine.c_str();
但这行返回一个错误:“类型的值‘恒定的char *’不能使用。初始化类型为 “字符” 的实体
我怎样才能解决这个问题?
应该是:
const char *str = tempLine.c_str();
请注意,您不应该更改字符串的内容。一般来说,它不是使用C++字符串的好方法。如果您确实需要将C++字符串完全转换为C字符串 - 分配内存并使用strcpy
来复制数据,请不要直接使用C++字符串缓冲区。
编辑为您的要求在评论:看看here C++学习资源。
您不能转换const char*
,这是std::string::c_str()
回报,以char
。更改:
char str = tempLine.c_str();
到:
const char* str = tempLine.c_str();
注意,这并不在tempLine
字符复制到str
,str
只是指tempLine
的字符。
我知道const是什么,但str之前的“*”是什么? –
@Ahoura - '*'表示**指针**。 'char'是单个字符,你正在处理一个字符串。所以你需要一个指向一系列字符的指针,而不是一个字符。如果你不知道'*'是什么意思,我相信你不应该做你正在做的事情。 – littleadv
@AhouraGhotbi如果你的问题真的是'*'的意思,那么现在就停下来,开始写一本好的C++书。 –