2013-12-02 2 views
-5

Как читать в c-строке в массив символов без знания размера строки, которую вводит пользователь?Чтение в массив символов неизвестного размера

+4

До сих пор, что вы написали? (размер массива по требованию?) –

+0

Знаете ли вы разницу в c-строке и массиве символов? –

+0

@runnerup нет не совсем. Я думал, что c-строка представляет собой массив символов, будет иметь нулевое завершение. –

ответ

0

Без какого-либо кода или дальнейшее описание вашей проблемы, это трудно понять, что вы пытаетесь достичь, но, один из следующих может быть подходит для ваших нужд:

  1. Использовать предопределенные массив какой-либо максимальный размер, который вы знаете, больше, чем количество символов, которые будут введены.

  2. Создайте пустую строку std ::, а затем используйте строку «+ =» для каждого введенного символа. Затем вы можете преобразовать обратно в массив с помощью метода c_str().

+0

Второй вариант будет намного лучше просто прочитать в 'std :: string', поскольку он поддерживает это. Тем не менее, я готов поспорить, что это победит цель того, что пишет OP. – chris

+0

@chris И это даже не C. –

+0

@ Крис, я думаю, вы делаете предположение, которое я не хотел делать, это то, как поступает вход. Вход для каждого символа (с переменной задержкой между входами) распространен во многих системах, о которых вы, возможно, и не думаете, поэтому я не думаю, что просто чтение в строку охватывает все. Учитывая неопределенность вопроса, я оставил свой ответ достаточно общим, чтобы быть полезным в таких случаях. – MikeD

Смежные вопросы