如何将长整数分成3个字符集?

时间:2011-02-01 10:11:17

标签: c string long-integer

我有一个很长的整数变量,它包含20101201

之类的数据

我需要将其拆分为20101201

注意:我需要在我的linux机器上的C程序中执行此操作。

4 个答案:

答案 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;
}

然后,您可以使用索引将数字拆分为不同的字符串来完成您的程序。