【问题标题】:extracting int into array from long long in c从c中的long long提取int到数组中
【发布时间】:2014-09-10 23:55:19
【问题描述】:
我是编程新手,对未定义长度的数组没有经验。
我想从用户输入生成的 long long 中提取特定数字(因为我没有使用 char 这样做)。
对我来说,最好的结果是它最终会出现在一个数组中,每个数字都有自己的 int,这样我就可以运行循环并用它们做数学运算。
假设我想从右边获取第 20 位,用户输入 GetLongLong 的位数未知,这就是我的代码的样子:
int spec20 = (digits / 10000000000000000000) % 10;
我怎样才能使这更简单并使用数组来存储特定的数字?
【问题讨论】:
标签:
c
arrays
int
long-integer
【解决方案1】:
你可以这样做:
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');