字符串和整形相互转换

时间:2021-09-09 17:52:36

1、整形转换为字符串(itoa)

/**************************************************** *功能 :将整形数据转换为字符串 *参数 :data:要转换的整形数据 * str :转换完的字符串保存位置 *返回值:无 *****************************************************/
void intToStr(int data, char *str)
{  
    int flag = 0;  
    char *ptr = str;  

    if(data < 0)
    {  
        flag = 1;  
        data = -data;  
    }
    else if(data == 0)
    {  
        *str = '0';  
        str ++;  
    }
    else
    {
        flag = 0;
    }

    while(data != 0)
    {  
        *str = data%10 + '0';  
        data = data/10;  
        str++;  
    }

    if(flag == 1)
    {  
        *str = '-';//是负数的话,加个符号在末尾 
        *(str+1) = '\0';//字符串结束符
    }
    else
    {
        *str = '\0';
        str--;
    }

    //字符串翻转
    while(str > ptr)
    {
        *str = *str ^ *ptr;
        *ptr = *str ^ *ptr;
        *str = *str ^ *ptr;

        str--;
        ptr++;
    }
}