Я пытаюсь ввести строки, которые могут содержать пробелы. Вся строка может быть сделана из пробелов.
Вот что я делаю
Здесь нет тестовых случаев.
Скажем, для m = 3, у меня есть этот вход
Для наглядности — используется для представления пробелов. На входе вместо пробелов — ,
Это вывод, который я получаю
Еще одна вещь, которую я попробовал это
где m = 3, n = 2 для примера выше. Но печать этого arr дает мне следующий вывод:
Я не уверен, почему я получаю этот вывод. Почему я получаю NUL вместо пробелов. Также в первом коде я получаю вывод NUL до # ,это почему?
Решение
Нет необходимости писать такой сложный код для получения пробелов из cin , Вы можете просто воспользоваться std::noskipws флаг.
Решение 1:
Решение 2:
или даже проще, без каких-либо string :
Решение 3:
Другие решения
Вы печатаете str[0] — это не строка, это один символ. Когда ваша строка пуста, единственное, что в ней содержится, это null-terminator ( ‘