【发布时间】:2021-07-25 05:53:11
【问题描述】:
在我的 c++ 代码中,我想写字符数组 s[n] 而不是写 s[10]。其中 n 是 size 是数组,它由用户在运行时给出。 但它不接受输入。它只取n,而不是字符串。
我得到了这样的输出,
输入尺寸:10
输入字符串:
字符串:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
cout<<"Enter size : ";
cin>>n;
char s[n];
cout<<"Enter String : \n";
cin.getline(s,n);
cout<<"String : \n";
int l=strlen(s);
cout.write(s,l);
return 0;
}
【问题讨论】:
-
可变长度数组 (VLA) 不是 C++ 语言的一部分,尽管一些编译器支持它们作为扩展:Variable Length Array (VLA) in C++ compilers。但是你为什么在 C++ 中使用 C 风格的字符串 - 只需使用
std::string。 -
// 你可以考虑使用动态内存 .... char* s = new char[n]; cout
标签: c++