用随机名称填充的字符串数组

Posted

技术标签:

【中文标题】用随机名称填充的字符串数组【英文标题】:String array filled with random names 【发布时间】:2020-08-31 07:02:46 【问题描述】:

这是我第一次尝试在 C++ 中使用字符串数组,是的……我被卡住了。

我正在尝试一个让用户输入最大值的小程序。 10 个随机名称。如果用户输入'.'或已输入 10 个 nNames,输入对话框将结束。完成此操作后,所有名称都将被打印出来。

我用向量试过了,但我想我做错了什么......

#include <iostream>
#include <vector>
using namespace std;

int main()

    char name;
    int i, counter;
    vector<string> namen_vec;

    cout << endl << "Eingabedialog von maximal 10 Namen. " << endl;
    cout << "Eingabe kann fruehzeitig mit '.' beendet werden. " << endl;
    cout << "--------------------------------------------------" << endl << endl;

    counter = 0;

    do
    
        cout << "Eingabe Name: ";
        cin >> name;
        namen_vec.push_back(name);
        counter++;

     while (name != '.' && counter <= 9);

    for (int i = 0; i < namen_vec.size(); i++)
    
        cout << namen_vec[i] << endl;
    

    return 0;

也许有人有一两个建议?

【问题讨论】:

char name 是单个字符,你想要一个std::string name 什么您显示的代码“错误”?你期望什么行为?你得到什么行为?请花一些时间刷新the help pages,获取SO tour,阅读How to Ask,以及this question checklist。最后请记住如何edit您的问题。 你应该使用 std::string 类型来解决你的问题。 【参考方案1】:

首先,您已将变量name 声明为char,但您的容器vector namen_vec 接受string。尽管如此,程序还是不会编译成功,因为下面这行

while (name != '.' && counter <= 9);

因为name 将是一个字符串,那么您必须将其更改为

while (name != "." && counter <= 9);

【讨论】:

请对代码使用code 格式,而不是粗体文本。见***.com/editing-help

以上是关于用随机名称填充的字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

如何生成保存到数组中的随机字符串? c# [重复]

用随机数填充我的数组?

使用字母A到(用户选择的值)填充数组

用字符串动态填充字符数组

用重复的字符串填充数组 - JAVA

extJs - 用字符串数组填充网格面板