我有一个很长的整数变量,它包含20101201
我需要将其拆分为2010
,12
和01
。
注意:我需要在我的linux机器上的C程序中执行此操作。
答案 0 :(得分:5)
你可以除以10的幂来摆脱右边的数字:
(20101201/100/100)==2010
以10的权力模数来摆脱左边的数字:
(20101201%100)==01
并将它们组合在一起以获得中间部分:
(20101201/100)%100==12
答案 1 :(得分:1)
这个应该是好的,并将答案分为字符串。
long long int lWholeThing = 20101201LL;
long long int lDate = lWholeThing % 100LL;
lWholeThing /= 100LL;
long long int lMonth = lWholeThing % 100LL;
lWholeThing /= 100LL;
long long int lYear = lWholeThing;
char sDate [3];
char sMonth [3];
char sYear [5];
sprintf (sDate, "%02d", (int) lDate);
sprintf (sMonth, "%02d", (int) lMonth);
sprintf (sYear, "%d", (int) lYear);
答案 2 :(得分:0)
对于您给出的示例,您希望将数字分为三组: 将输入作为参数传递给可执行文件。
int main( int argc, char **argv)
{
long long int x;
x=atoll(argv[1]);
printf("\n %d", x%100);
x=x/100;
printf("\n %d", x%100);
x=x/100;
printf("\n %d", x);
}
答案 3 :(得分:0)
尝试类似:
#include <stdlib.h> // for itoa() call -- built in to convert integer to string
#include <stdio.h> // for printf() call
int main() {
int num = 123;
char buf[5];
// convert 123 to string [buf]
itoa(num, buf, 10);
// print our string
printf("%s\n", buf);
return 0;
}
然后,您可以使用索引将数字拆分为不同的字符串来完成您的程序。