【问题标题】:C char arrays for user input [closed]用于用户输入的 C char 数组
【发布时间】:2021-03-25 16:04:02
【问题描述】:

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

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

【问题讨论】:

  • 您可以使用动态内存分配并在用户输入更多时增加大小。有一个函数 getline() 可以自动执行此操作。

标签: arrays c io char


【解决方案1】:

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

【讨论】:

  • 这非常有效。我知道这是一个简单的解决方案的愚蠢查询,但感谢您的帮助。
  • @ZachParker 如果我的回答解决了您的问题,请勾选接受。
猜你喜欢
  • 2010-11-27
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 2019-04-13
相关资源
最近更新 更多