首页 > 解决方案 > 如何在空数组中添加用户给出的字符串并在 C++ 中查找它的长度

问题描述

我是 C++ 的新手,并且正在尝试从用户那里获取字符串并将它们添加到一个空数组中。我读了我的书,但没有得到正确的解释。我知道我的代码不正确,但我想做的是,要求用户提供一个字符串,直到用户键入“退出”,程序应该获取字符串并将其添加到名为 listt 的空数组中。之后,我声明了名为 len 的变量,并尝试获取我刚刚创建的数组的长度。但是我遇到了几个错误并寻找资源来解决我的问题。我还是做不到。如果有人可以帮助我解决这个问题,那将是非常有帮助的。非常感谢。我的代码是:

#include <iostream>

using namespace std;
int main()
{
    string listt[];

    string word;
    cout<< "Enter word: ";

    while (word != "Quit" ){

        cin >> word;
        listt.push_back(word);
    }
    cout << listt;

    int len ;

    len = listt.size();
    cout << len;
    for (int i=0; i < len; i++){
        cout << i;
        cout << endl;
    
    }
    return 0; 
}

标签: c++arrayssize

解决方案


您应该使用向量而不是数组:

所以而不是:

string listt[]; // shouldn't compile anyway

利用:

vector<string> listt;

另外,这也不行:

cout << listt; // you can't print array or vector directly, so loop and print each item

此外,使用 for-each 而不是 C-style for

for (const auto &v : listt)
{
    cout << v << endl;
}

您的其余代码应该没问题。


推荐阅读