0

我有一个由 20 个字符串组成的数组,其中最多 81 个字符将由用户填充,如果用户输入的字符大于 81 个字符,我该如何去除最后多余的空字符?

我试图寻找解决方案,但大多数似乎都要求我知道用户在程序运行之前输入了多少个字符。

int main()
{
    string strings[20];

    cout << "Enter up to 20 strings, press enter when done: ";

    input(strings);

    for (int i = 0; i < 20; i++)
    {
        if (strings[i] == "\0")
            break;
        else
        {
            strings[i].resize(81);
            cout << "Here is string" << i << ": " << endl << strings[i] << endl;
            menu(strings[i]);
        }

    }

void input(string strings[])
{
    for (int i = 0; i < 20; i++)
    {
        getline(cin, strings[i]);
        if (strings[i] == "\0")
            break;
    }
}
4

1 回答 1

1

您是否尝试过以下操作?

strings[i] = strings[i].substr(0, 81)

我有一段时间没有使用 C++,但这应该只是将输入修剪为前 81 个字符。更好的是,当您第一次获取输入时应用此设置,或者如果太长,则将用户输入错误返回给用户。

于 2019-10-22T17:08:29.747 回答