使用字符串大小声明数组大小

Using String Size to Declare Array Size?

本文关键字:数组 声明 字符串      更新时间:2023-10-16

对不起,初学者在这里。我正在尝试从 cin 函数中获取字符串大小,然后使用它来声明数组大小。 但它是在说:

第 17 行:请求"x"中的成员"size",这是非类类型"std::string long int"。

不过,没有数组就可以正常工作。

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int y;
    string x[y];
    cout << "Enter sequence" << endl;
    cin >> x[y];
    y = x.size;
    for (int i = 0; i > y; i++)
        cout x[i];
    cout << "The size of the sequence is " << x.size() << " characters." << endl;
}

首先,不允许像你一样声明数组。我们来看看这两行代码

int y;
string x[y];

在第二行代码中,y的值是多少?它可以是任何东西。编译器当然不知道,数组大小必须在编译时确定。

您的问题有两种解决方案:

  1. 使用指针并动态分配数组。

  2. 使用 std::vector 并让标准库负责动态分配。

IMO,两者都是你应该在你的程序员工具带中拥有的工具,所以你应该学习如何同时做这两件事。您还应该了解这两种方法的优缺点,以便您可以选择正确的方法来解决问题。

最后,您收到的错误消息意味着数组没有名为 size() 的成员。如果使用解决方案 1 解决此问题。以上,您需要自己跟踪大小。