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

标签 c++ string

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/

相关文章:

c++ - OpenVMS 上 -F- atals 的 LIB$SIGNAL 问题

c++ - 强制重新计算 Qt 样式表似乎无济于事

c++ - 带有 Xaml 应用程序的 Directx 工具包

C++ std::map 不同的键寻址相同的索引

c++ - 具有负值的 size_t 算术

c++ - 如何从cpp中的给定字符串中提取特定字符串?

swift - 如何在 Swift 中删除字符串中的重复字符

c++ - 如何使用文件 I/O C++

c++ - 在临时字符串上使用基于范围的循环时为空字符?

c# - .NET 中 String.GetHashCode() 的哈希质量和稳定性?