在c中从long long中提取int到数组中

时间:2014-09-10 23:55:19

标签: c arrays int long-integer

我是编程新手,对没有定义长度的数组没有经验。 我想从用户输入生成的long long中提取特定数字(因为我没有使用char这样做)。 最好的结果对我来说,它最终会在一个数组中,每个数字都有自己的int,这样我就可以运行循环并用它们做数学运算。

假设我想从右边获取第20位数字,用户在GetLongLong中输入的数字位数未知,这就是我的代码:

int spec20 = (digits / 10000000000000000000) % 10;

如何使这更简单并使用数组存储特定数字?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

char str[100]; // your number should most probably fit
sprintf(str,"%lld",digits);

然后str将包含您的号码的字符串表示,您可以从右侧找到第20个元素(从1开始计数),这样(不是唯一的确定方式)。

int d_len = strlen(str);
int the_20th_pos = (d_len>20? d_len-20: -1); // take care of numbers less than 20 digits
int the_20th = (int)(the_20th_pos<0? 0: str[d_len-the_20th_pos]-'0');