// 函數: Int_To_Str(int x,char *Str)
// 功能: 將整型轉爲字符串
// 參數: x: 轉換的整數
// Str: 轉換後的字符串
// 返回值: 無
//====================================================================//
void Int_To_Str(int x,char *Str)
{
int t;
char *Ptr,Buf[5]; //定義一個字符串數組和字符串指針,
int i = 0; //用於計數
Ptr = Str; //內部指針指向外部指針,進行參數傳遞,是屬於源參數傳遞(通過地址),
if(x < 10) // 當整數小於10,轉換爲0x格式
{
*Ptr ++ = '0'; //單個數字前面補“0”
*Ptr ++ = x+0x30;
}
else
{
while(x > 0)
{
t = x % 10;
x = x / 10;
Buf[i++] = t+0x30; // 通過計算把數字編成ASCII碼形式
}
i -- ;
for(;i >= 0;i --) // 將得到的字符串倒序
{
*(Ptr++) = Buf[i];
}
}
*Ptr = '\0';
}
下面是在c編輯器中驗證的一個小程序
#include <stdio.h>
#include <stdlib.h>
void Int_To_Str(int x,char *Str);
int main()
{
int i =123;
int j=0;
char Msg[20]="ABCDEFGHIJKLMNOPQRST";
char *P_Str;
Int_To_Str(i,Msg);
P_Str = &Msg;
while(*P_Str!='\0')
{
printf("%c",*P_Str);
P_Str++;
}
printf("\n");
system("pause");
return 0;
}
void Int_To_Str(int x,char *Str)
{
int t;
char *Ptr,Buf[5];
int i = 0;
Ptr = Str;
if(x < 10) // 當整數小於10,轉換爲0x格式
{
*Ptr ++ = '0';
*Ptr ++ = x+0x30;
}
else
{
while(x > 0)
{
t = x % 10;
x = x / 10;
Buf[i++] = t+0x30; // 通過計算把數字編成ASCII碼形式
}
i -- ;
for(;i >= 0;i --) // 將得到的字符串倒序
{
*(Ptr++) = Buf[i];
}
}
*Ptr = '\0';
}