【问题标题】:'Character Array' of integers to 'Integer array' [closed]整数的“字符数组”到“整数数组”[关闭]
【发布时间】:2015-08-07 20:14:57
【问题描述】:

我的要求:

将一些(未知数)整数作为用户的输入,并将它们存储在数值数组中。

例如:输入:25 3 4 78。我希望将它们存储在数字数组中,例如num as

    num[0] = 25
    num[1] = 3
    num[2] = 4
    num[3] = 78
    . . . 

我做了什么:

  1. 将输入存储在字符数组中。

    得到(arr); //从命令提示符获取输入并存储在字符串中

  2. 然后我试图找到空格并分隔字符,但事实证明double digit number(say,25) 存储为25,但不是25

我如何做到这一点?

【问题讨论】:

  • gets()邪恶的,请改用fgets()。 #offtopic
  • @itsnotmyrealname 我相信在这种情况下,我的问题的解释比我的代码更清楚。
  • @SouravGhosh fgets(),据我说是在文件中使用,但在这里我需要从命令提示符处获取输入。
  • "25"不存储为25,它存储为'2''5',这是一个重要的区别。
  • 然后有人会根据你的想法帮助你@nikhil

标签: c arrays integer


【解决方案1】:

好吧,由于您没有展示您的代码,我也不会提供任何代码,但我很乐意为您提供流程图。

  1. 定义一个足够大的数组(以后可能会改为动态分配)。
  2. 使用fgets() 获取用户的输入(不是命令行参数)。
  3. 使用strtok() 对输入进行标记,使用空格 作为分隔符。
  4. 如果收到非 NULL 令牌,请使用 strtol() 将令牌转换为 intlong
  5. 如果 strtok() 返回 NULL 表示您已获得所有令牌且输入为空,则完成后,您将获得 int 数组。

【讨论】:

  • 酷!会试一试!谢谢! :)
  • @Sourav Ghosh 成功了。
  • @Olaf 停止拖钓并停止将正常问题标记为作业问题和题外话。如果你太关心和担心 SO 的质量,那么请记住,像你在这里做的那样的 cmets 也有相同的,如果不是,没有像你似乎如此关心的那些离题的问题那样的价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2013-07-18
  • 2017-10-29
  • 2012-10-09
  • 2018-01-02
  • 1970-01-01
相关资源
最近更新 更多