Как удалить нулевые символы в конце строки ввода пользователя? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть массив из 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;
    }
}

1 Ответ

1 голос
/ 22 октября 2019

Вы пробовали следующее?

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

Я некоторое время не работал с C ++, но это должно просто обрезать ввод до первых 81 символа. Еще лучше, примените это, когда вы впервые получаете ввод или возвращаете пользователю ошибку ввода, если слишком долго.

...