gpt4 book ai didi

c - 使用atoi将字符串索引转换为数组索引

转载 作者:行者123 更新时间:2023-11-30 16:16:29 26 4
gpt4 key购买 nike

我正在编写一个计算阶乘的数字总和的代码,我的解决方案是将数字转换为字符串,然后将该字符串放入数组中。

我尝试使用 atoi 将字符串索引转换为数组索引,但它不起作用,给我错误“传递‘atoi’的参数 1 使指针来自整数而不进行强制转换”

#include <string.h>
#include <stdlib.h>
int fat(int x)
{
if (x == 0 || x == 1)
{
return 1;
}
else
{
return x * fat(x-1);
}
}

int main()
{
int n, i, f=0, arr[30];
char str[30];
printf("Type the value of N: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
f = fat(i);
}
printf("%d \n", f);
sprintf(str, "%d", f);
n=0;
for (i=0;i<strlen(str);i++)
{
arr[i]=atoi(str[i]);
n=n+arr[i];
}
printf("%d", n);
}

最佳答案

如果您只想将单个数字字符转换为数字,则不需要使用atoi()。使用str[i] - '0'

        arr[i] = str[i] - '0';

这个数组似乎也没有什么意义。你可以这样做:

        n += str[i] - '0';

无需将所有数字保存在您不再使用的数组中。

关于c - 使用atoi将字符串索引转换为数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com