C语言中怎么将int类型的数据转换为字符串(STM32程序)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jie1024539775/article/details/80406996
//====================================================================//
// 函数: 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';
}

猜你喜欢

转载自blog.csdn.net/jie1024539775/article/details/80406996
今日推荐