我正在尝试创建一个声明一个数组(字符串)的程序,它将在运行时获得它的大小和值,用户将输入它们。 这是一个代码,但它没有给出错误:初始化程序无法确定文本的大小。
string txt;
int x;
cout << "Enter the text\n";
cin >> txt;
char text[] = txt;
x = sizeof(text[]);
cout << x;
return 0;
这是另一个,它给出了错误:文本的存储大小是不知道的。
char text[];
int x;
cout << "Enter the text\n";
cin >> text;
x = sizeof(text[]);
cout << x;
return 0;
答案 0 :(得分:2)
更好地使用string
类型。然后,您可以为该字符串调用方法size()
。
string txt;
int x;
cout << "Enter the text\n";
cin >> txt;
x = txt.size();
cout << x;
return 0;
答案 1 :(得分:0)
char text[] = txt;
错了。
您无法立即将std::string
类型投射到char[]
阵列。
如果要访问char[]
内维护的std::string
数组的原始指针,请使用std::string::c_str()
或std::string::data()
成员函数。
我实际上并不知道你使用char[]
做了什么样的麻烦,但我会像这样重写你的代码:
string txt;
int x;
cout << "Enter the text\n";
cin >> txt;
// char text[] = txt; <<<<< remove
x = txt.size(); // <<<<<< change
cout << x;
return 0;
如果还需要[const] char*
类型,您可以使用我的答案第一部分中提到的功能。
答案 2 :(得分:0)
namespaces