string s="abcdefghijklmnopqrstuvwxyz"
char f[]=" " (s.substr(s.length()-10,9)).c_str() " ";
我想获取s的最后9个字符,并在子字符串的开头和结尾添加“”,并将其存储为char[]。我不明白为什么这不起作用,即使 char f[]="""a"""可以。
(s.substr(s.length()-10,9)).c_str() 不是字符串文字吗?
最佳答案
不,它不是字符串文字。字符串文字总是采用 "<content>"
的形式或扩展到那个(宏,例如 __FILE__
)。
只需使用另一个 std::string
而不是 char[]
.
std::string f = " " + s.substr(s.size()-10, 9) + " ";
关于c++ - 这个字符串赋值有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8322468/