整型转换成字符串

    xiaoxiao2021-03-25  130

    本文转载自:http://blog.csdn.net/mnorst/article/details/6622293

    1,使用c语言函数

      将整形数value转换为其等价的字符串    char *itoa(int value, char *string, int radix) 

      Parameters(参数说明)    第一个参数:value        Number to be converted(将要被转换的值)    第二个参数:string       String result(转换的结果)    第三个参数:radix        Base of value; must be in the range 2 – 36(转换的基数,取值范围2-36。例如  radix=10表示10进制,radix=8表示8进制。)    返回值:与string参数相同,便于函数的嵌套调用

      头文件 stdlib.h  

      举例说明:

    [cpp]  view plain  copy #include <stdlib.h>      #include <stdio.h>      int main()      {         int number = 123456;          char string[25];          itoa(number, string, 10);          printf("integer = %d string = %s\n", number, string);          return 0;      }   

    2,  使用CString格式化字符串

            函数原型:void  CString::Format( UINT nFormatID, [, argument]...);

            使用方法同printf

    举例说明:      

    [cpp]  view plain  copy int num = 2;    CString str;   str.Format("a=%d",a);  

    3,使用sprintf格式化字符

        函数原型: int sprintf( char *buffer, const char *format [, argument] ... );      举例说明: 

    [cpp]  view plain  copy char buffer[10];      int  num = 3;       sprintf(buffer,"size=%d",num);      4,不适用库函数

    [cpp]  view plain  copy /*整数转化成字符串*/   char *IntToStr(int num, char str[])   {       int i = 0, j = 0;       char temp[100];       while(num)       {           temp[i] = num % 10 + '0';   //取模运算得到从后往前的每一个数字变成字符           num = num / 10;           i++;       }       temp[i] = 0;    //字符串结束标志              i = i - 1;     //回到temp最后一个有意义的数字       while(i >= 0)       {           str[j] = temp[i];           i--;           j++;       }       str[j] = 0;   //字符串结束标志       return str;   }      /*字符串转换为整数,仅考虑十进制,不考虑非法字符*/   int StrToInt(char *str)   {       int value = 0;       int sign = 1;       assert(str != NULL);       if(*str == '-')       {           sign = -1;           str++;       }else if(*str == '+')       {           str++;       }       while(*str)       {           value = value * 10 +(*str - '0');           str++;              }       return sign * value;   }      /*字符串转换整数,考虑16进制,10进制,8进制,不考虑其他非法字符*/   int StrToIntAll(char *str)   {       int value = 0;       int sign = 1;       int radix;          assert(str != NULL);       if(*str == '-')       {           sign = -1;           str++;       }       else if(*str == '+')       {           str++;       }       //考虑不同的进制       if(*str == '0' && (*(str+1) == 'X' || *(str+1) == 'x'))       {           radix = 16;           str += 2;       }else if(*str == '0')       {           radix = 8;           str++;       }else       {           radix = 10;       }          while(*str)       {           if(radix == 16)           {               if(*str >= '0' && *str <= '9')               {                   value = value * radix + (*str - '0');               }else               {                   value = value * radix +(*str - 'a' + 10);               }           }else           {               value = value * radix + (*str - '0');           }           str++;       }          return sign * value;   }  

    转载请注明原文地址: https://ju.6miu.com/read-40981.html

    最新回复(0)