整型转换成字符串

本文转载自: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
  1. #include <stdlib.h>     
  2. #include <stdio.h>     
  3. int main()     
  4. {    
  5.     int number = 123456;     
  6.     char string[25];     
  7.     itoa(number, string, 10);     
  8.     printf("integer = %d string = %s\n", number, string);     
  9.     return 0;     
  10. }   

2,  使用CString格式化字符串

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

        使用方法同printf

举例说明:      

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

3,使用sprintf格式化字符


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

    举例说明: 

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

[cpp]  view plain  copy
  1. /*整数转化成字符串*/  
  2. char *IntToStr(int num, char str[])  
  3. {  
  4.     int i = 0, j = 0;  
  5.     char temp[100];  
  6.     while(num)  
  7.     {  
  8.         temp[i] = num % 10 + '0';   //取模运算得到从后往前的每一个数字变成字符  
  9.         num = num / 10;  
  10.         i++;  
  11.     }  
  12.     temp[i] = 0;    //字符串结束标志  
  13.       
  14.     i = i - 1;     //回到temp最后一个有意义的数字  
  15.     while(i >= 0)  
  16.     {  
  17.         str[j] = temp[i];  
  18.         i--;  
  19.         j++;  
  20.     }  
  21.     str[j] = 0;   //字符串结束标志  
  22.     return str;  
  23. }  
  24.   
  25. /*字符串转换为整数,仅考虑十进制,不考虑非法字符*/  
  26. int StrToInt(char *str)  
  27. {  
  28.     int value = 0;  
  29.     int sign = 1;  
  30.     assert(str != NULL);  
  31.     if(*str == '-')  
  32.     {  
  33.         sign = -1;  
  34.         str++;  
  35.     }else if(*str == '+')  
  36.     {  
  37.         str++;  
  38.     }  
  39.     while(*str)  
  40.     {  
  41.         value = value * 10 +(*str - '0');  
  42.         str++;  
  43.       
  44.     }  
  45.     return sign * value;  
  46. }  
  47.   
  48. /*字符串转换整数,考虑16进制,10进制,8进制,不考虑其他非法字符*/  
  49. int StrToIntAll(char *str)  
  50. {  
  51.     int value = 0;  
  52.     int sign = 1;  
  53.     int radix;  
  54.   
  55.     assert(str != NULL);  
  56.     if(*str == '-')  
  57.     {  
  58.         sign = -1;  
  59.         str++;  
  60.     }  
  61.     else if(*str == '+')  
  62.     {  
  63.         str++;  
  64.     }  
  65.     //考虑不同的进制  
  66.     if(*str == '0' && (*(str+1) == 'X' || *(str+1) == 'x'))  
  67.     {  
  68.         radix = 16;  
  69.         str += 2;  
  70.     }else if(*str == '0')  
  71.     {  
  72.         radix = 8;  
  73.         str++;  
  74.     }else  
  75.     {  
  76.         radix = 10;  
  77.     }  
  78.   
  79.     while(*str)  
  80.     {  
  81.         if(radix == 16)  
  82.         {  
  83.             if(*str >= '0' && *str <= '9')  
  84.             {  
  85.                 value = value * radix + (*str - '0');  
  86.             }else  
  87.             {  
  88.                 value = value * radix +(*str - 'a' + 10);  
  89.             }  
  90.         }else  
  91.         {  
  92.             value = value * radix + (*str - '0');  
  93.         }  
  94.         str++;  
  95.     }  
  96.   
  97.     return sign * value;  
  98. }  

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值