刺激战场
六合彩
贵宾厅
  • 2897阅读
  • 2回复

怎样将整数转化成字符串,不能用itoa? [复制链接]

上一主题 下一主题
离线那个谁
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-10-30

因为整数加'\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;
}
离线fsf359

只看该作者 沙发  发表于: 2013-10-31
这个我写过。用汇编啊
离线fsf359

只看该作者 板凳  发表于: 2013-10-31
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++;


        }
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个