將整數轉換成字串

helloxchen發表於2010-12-09

將整數轉換成字串

請編寫一個 C 函式,該函式將給定的一個整數轉換成字串。

【本程式在Dev C++ 4.9.9.2 下編譯透過】

下面的這個演算法比較傻,垃圾的很,顯示了一個C語言新手

所應有的水平。而且處理不完全,演算法考慮不周到,程式碼

過於囉嗦,不夠簡潔,緊接著這個後面會有一個較為簡潔、

完全的程式碼。

char * IntToStr(int Number)

{

char ch,*str,*t;

int i,Temp,Len=0;

str = (char *)malloc(11*sizeof(char));

t = str;

Temp =Number;

while(Temp != 0)

{

*t = (Temp%10)+0x30;

Temp = Temp/10;

Len++;

t++;

}

*t = '';

t = str;

for(i=0;i

{

ch = *t;

*t = *(t+Len-2*i-1);

*(t+Len-2*i-1) = ch;

t++;

}

return str;

}

main()

{

puts(IntToStr(123456));

}

下面是較為完全,較為簡潔的程式碼。如發現什麼錯誤,希望網友

能及時提出,俺將會給予改正。這裡要謝謝 “阿郎” 網友的提醒。

char * IntToStr(int Number)

{

char ch,*str,*right,*left;

unsigned int Value;

str = (char *)malloc(12*sizeof(char));

left = right = str;

//如果是負數,則應加上負號,left、right向後走。

if(Number < 0)

{

Value = -Number;

*str = '-';

left++,right++;

}

else

Value = (unsigned)Number;

//把數字轉換成字串(倒置的)

while(Value)

{

*right = (Value%10)+0x30;

Value = Value/10;

right++;

}

*right-- = '';

//把倒置的字串正放過來

while(right > left)

{

ch = *left;

*left++ = *right;

*right-- = ch;

}

return str;

}

main()

{

char * str;

str = IntToStr(1234567);

puts(str);

free(str);

str = IntToStr(-1234567);

puts(str);

free(str);

str = IntToStr(0x7FFFFFFF);

puts(str);

free(str);

str = IntToStr(-0x7FFFFFFF);

puts(str);

free(str);

system("pause");

}

http://blog.csdn.net/ammana_babi/archive/2006/07/18/936918.aspx

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24790158/viewspace-1042845/,如需轉載,請註明出處,否則將追究法律責任。

相關文章