找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 237|回复: 2

怎样将整数转化成字符串,不能用itoa?

[复制链接]

210

主题

371

回帖

0

积分

管理员

积分
0
发表于 2013-10-30 16:16:48 | 显示全部楼层 |阅读模式

因为整数加'\0'就会隐形转化成char类型的数,所以整数转化成字符串,可以采用加'\0',然后再逆序的办法,具体实现例程如下:

int main(void)
{
        int num = 12345, i = 0, j = 0;
        char temp[10], str[10];
        while(num)
        {
                temp = num%10 + '0';
                i++;
                num = num/10;
        }
        temp = 0;
        printf("temp = %s\n", temp);
        i = i-1;
        printf("temp = %d\n", i);
        while(i >= 0)
        {
              str[j] = temp;
              j++;
              i--;
         }
         str[j] = 0;
         printf(" string=%s\n", str);
         return 0;
}

0

主题

23

回帖

0

积分

新手上路

积分
0
发表于 2013-10-31 21:55:12 | 显示全部楼层
这个我写过。用汇编啊

0

主题

23

回帖

0

积分

新手上路

积分
0
发表于 2013-10-31 21:59:02 | 显示全部楼层
void bao_cun_RECV(int addr,int baochang,int mytype)//把16进制数值转成16进制字串。 如:0x77 转为 0x370x37.
        //参数1 数据的地址  参数2  要转换的数据的长度。
{
        //30--37
        //2e777f77
        //777677e2烫烫烫烫$?
        //char strtemp[baochang];
        unsigned char * recv_bao=(unsigned char*)malloc(baochang*2*sizeof(unsigned char));
        int n=0;
        unsigned char gaowei[1],diwei[1],temp[1];
        /*HWND hwnd=::FindWindowA(NULL,"Dialog");
        HWND hwnd1=GetDlgItem(hwnd,IDC_LIST2);*/
        for (int i=0;i<baochang;i++)
        {
                temp[0]=*(char*)addr;//0xd5

                gaowei[0]=temp[0]>>4;//高位 如:eax 里是 d5  这里是 0xd
                gaowei[0]=gaowei[0]<<4;//d0
                diwei[0]=temp[0]-gaowei[0];//d5-d0=5
                gaowei[0]=gaowei[0]>>4;//这里回到 d
                addr++;

                if(gaowei[0]<=9&&gaowei[0]>=0)//
                {
                        gaowei[0]+=0x30;
                }
                else
                {
                        gaowei[0]+=0x37;
                }
                recv_bao[n]=gaowei[0];
                n++;


                if(diwei[0]<=9&&diwei[0]>=0)
                {
                        diwei[0]+=0x30;
                }
                else
                {
                        diwei[0]+=0x37;
                }
                recv_bao[n]=diwei[0];
                n++;


        }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 14:05 , Processed in 0.067602 second(s), 20 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表