这个字符串赋值有什么问题?

joh*_*ith 1 c++ string

string s="abcdefghijklmnopqrstuvwxyz"
char f[]=" " (s.substr(s.length()-10,9)).c_str() " ";
Run Code Online (Sandbox Code Playgroud)

我想得到s的最后9个字符,并在子字符串的开头和结尾添加"",并将其存储为char [].我不明白为什么这不起作用,即使char f [] ="""a""".

是(s.substr(s.length() - 10,9)).c_str()不是字符串文字?

Xeo*_*Xeo 5

不,它不是字符串文字.字符串文字总是具有表单"<content>"或扩展为(宏,__FILE__例如).

只需使用另一个std::string而不是char[].

std::string f = " " + s.substr(s.size()-10, 9) + " ";
Run Code Online (Sandbox Code Playgroud)