本文转载自:/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 plaincopy#include<stdlib.h> #include<stdio.h> intmain() { intnumber=123456; charstring[25]; itoa(number,string,10); printf("integer=%dstring=%s\n",number,string); return0; }
2, 使用CString格式化字符串
函数原型:void CString::Format( UINTnFormatID, [,argument]...);
使用方法同printf
举例说明:
[cpp]view plaincopyintnum=2; CStringstr; str.Format("a=%d",a);
3,使用sprintf格式化字符
函数原型:intsprintf(char*buffer,constchar*format[,argument] ...);
举例说明:
[cpp]view plaincopycharbuffer[10]; intnum=3; sprintf(buffer,"size=%d",num);4,不适用库函数
[cpp]view plaincopy/*整数转化成字符串*/ char*IntToStr(intnum,charstr[]) { inti=0,j=0; chartemp[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;//字符串结束标志 returnstr; } /*字符串转换为整数,仅考虑十进制,不考虑非法字符*/ intStrToInt(char*str) { intvalue=0; intsign=1; assert(str!=NULL); if(*str=='-') { sign=-1; str++; }elseif(*str=='+') { str++; } while(*str) { value=value*10+(*str-'0'); str++; } returnsign*value; } /*字符串转换整数,考虑16进制,10进制,8进制,不考虑其他非法字符*/ intStrToIntAll(char*str) { intvalue=0; intsign=1; intradix; assert(str!=NULL); if(*str=='-') { sign=-1; str++; } elseif(*str=='+') { str++; } //考虑不同的进制 if(*str=='0'&&(*(str+1)=='X'||*(str+1)=='x')) { radix=16; str+=2; }elseif(*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++; } returnsign*value; }