使用 atoi 填充整数数组

Chr*_*tle 5 c arrays atoi

第一次在这里提问。抱歉,如果已经有关于此的主题,但我进行了一些搜索,并没有完全找到我认为我正在寻找的内容。我对 C 非常陌生,正在为我的微控制器系统课程做一些家庭作业练习。在我们进入嵌入式 C 之前,我们目前正在做一些简单的练习,我正在尝试编写一个程序,该程序将采用一行由 10 个以逗号分隔的数字组成的文本,并int用它填充一个s数组。作为提示,我们被告知使用substringand atoi。我想我已经接近正确了,但我无法正确输出我的数字。

此外,我不是在寻找勺子喂养的答案。一些提示现在就足够了。在寻求解决方案之前,我想尝试自己弄清楚。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a[10];
    char str[] = {1,2,3,4,5,6,7,8,9,10}; //contains string of numbers
    int i;
    puts("This prints out ten numbers:");

    for (i = 0; i < 10; i++)
    {
        a[i] = atoi(str);
        printf("%d", a[i]);
            //i'm guessing the problem lies in one of the above two lines
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是输出以下内容:

This prints out ten numbers:
0000000000
Run Code Online (Sandbox Code Playgroud)

感谢任何可以提供帮助的人!克里斯

tep*_*pic 3

您说必须使用一行用逗号分隔的文本,但实际上您已经声明了一个char包含十个(二进制)整数的数组。要将其放入字符串中,您只需执行以下操作:

char str[] = "1,2,3,4,5,6,7,8,9,10";

然后,您需要以某种方式处理该字符串,以将每个数字取出并放入您的数组中int

  • @MikeD:我认为这是通过处理字符串来获取数字所暗示的:) (2认同)