C語言中怎麼將int類型的數據轉換爲字符串(STM32程序)

//====================================================================//
// 函數: 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';
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章