提问者:小点点

理解C++字符串的问题-为什么我们在这里使用strcpy?


string str;
str="hi brother";
char * cstr = new char [str.length()+1];
strcpy (cstr, str.c_str());

我们为什么不直接这么做呢

char *cstr = str.c_str();

如果我尝试这样做,它会给出一个错误。我不明白常量char和char是什么意思

为什么我们在这里使用strcpy函数?


共1个答案

匿名用户

如果希望cstr最终指向字符串或真正的字符数组的副本,则需要在那里使用strcpy。如果希望它最终指向str在内部保存的相同字符数组,则可以使用

const char* cstr = str.c_str();

它必须是const,因为str拥有该字符串,因此只有它才允许修改该字符串;这就是const的意思。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(理解|c++|字符串|在这里|strcpy)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?