高手请进!如何把整形数据转换为字符串(C语言)?

高手请进!如何把整形数据转换为字符串(C语言)?,第1张

功 能:把一整数转换为字符串
用 法:char itoa(int value, char string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写
参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
string: 保存转换后得到的字符串。
返回值:
char : 指向生成的字符串, 同string。
备注:该函数的头文件是"stdlibh"
程序例:
#include <stdlibh>
#include <stdioh>
int main()
{
int number = 123456;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
}
注释:编译系统:VC++60,TC不支持。
我们可以这样构造itoa()
char itoa(int i)
{
char a=malloc(42); / Enough for a 128 bit integer /
if (a) sprintf(a,"%d",i);
return a;
}
实现itoa函数的源代码
char my_itoa(int num,char str,int radix){
const char table[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char ptr = str;
bool negative = false;
if(num == 0){ //num=0
ptr++='0';
ptr='\0'; // don`t forget the end of the string is '\0'!!!!!!!!!
return str;
}
if(num<0){ //if num is negative ,the add '-'and change num to positive
ptr++='-';
num=-1;
negative = true;
}
while(num){
ptr++ = table[num%radix];
num/=radix;
}
ptr = '\0'; //if num is negative ,the add '-'and change num to positive
// in the below, we have to converse the string
char start =(negativestr+1:str); //now start points the head of the string
ptr--; //now prt points the end of the string
while(start<ptr){
char temp = start;
start = ptr;
ptr = temp;
start++;
ptr--;
}
return str;
}

long double num;
CString cstr;
string str;
cstrFormat(_T("%4f"),num);
如果是MBCS编码:
str=(LPCSTR)cstr;
如果是UNICODE编码:
#include <atlconvh>
USES_CONVERSION;
str=W2CA((LPCWSTR)cstr);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13402451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存