2011-02-01 79 views
0

我有持有像20101201如何將一個長整數分成3個字符集?

我需要其分割爲20101201數據長長整型變量。

注意:我需要在我的linux機器的C程序中執行此操作。

+0

目前尚不清楚是否要使用很長很長的整數(像你說的)或字符串(如報價和標籤建議)來存儲大數目...... – Dave 2011-02-01 10:22:57

+0

@戴夫 - 我越來越long long integer value,並且需要將它存儲爲三個不同的字符串 – Thi 2011-02-01 10:30:44

+0

好的,我將在...中粘貼一個答案 – Dave 2011-02-01 11:26:08

回答

5

您可以通過10次冪劃分擺脫數字的右側:

(20101201%100)==01 

(20101201/100/100)==2010 

和10次冪的模獲得左側擺脫數並結合他們得到中間的部分:

(20101201/100)%100==12 
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); 

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

然後,你可以通過使用索引號碼分成不同的弦剛剛完成你的程序。

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); 
相關問題