用于用户输入的 C 字符数组

C char arrays for user input

我很少登录并且对 C 语言很陌生,因此如果这是一个重复的问题或者这是一个愚蠢的查询,我深表歉意。

我目前正在学习 C 并且正在用弦乐碰壁。我知道 char 数组用于代替语言中的字符串。我的问题是,在为用户输入声明 char[] 时,是否有比分配任意值更好的方法(即将用户可能输入的字符数多于或少于该数量时,将数组的大小设置为一个值)?

如果您使用的是 POSIX 系统(基本上不是 Windows 的任何系统),您可以使用 getline(3) 来执行此操作。它会自动为你分配一个合适大小的缓冲区。否则,您将不得不猜测一个长度,分配它,然后读取该长度的输入,如果您猜错了,请使用 realloc 增加您的猜测并重试。