【发布时间】:2017-06-14 09:12:51
【问题描述】:
我知道char a[] = "Hello World"; 有效,但我想知道是否有一种方法可以让字符数组由运行时输入的字符串初始化。
例如:
string word;
cout << "Enter a word ";
cin >> word;
char a[] = word;
我知道 clang++ 不接受这一点,因为它说“数组初始化程序必须是初始化程序列表或字符串文字”。
有没有不使用指针的解决方法?
【问题讨论】:
-
你使用
std::vector<char>。基本上是std::string。 -
为什么不直接使用
std::string?它使您可以访问其内部字符数组。 -
我知道您可以将字符串用作更简单的解决方案,但我正在尝试了解有关字符数组以及它们之间的区别、字符指针和字符串的更多信息。
-
问题是你需要事先分配内存,所以你不知道用户会输入多少个字符。
标签: c++ arrays string char string-literals