扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、一位的整型数转换为字符。首先,定义一个整型变量,保存转换的一位整型数值。
安远网站建设公司成都创新互联公司,安远网站设计制作,有大型网站制作公司丰富经验。已为安远1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的安远做网站的公司定做!
2、接着,定义一个字符型变量,保存转换为的单个字符。
3、将数值变量加上48,然后保存在字符变量c中。
4、运行程序,输入一个一位的数值后,电脑就会把它转换为相应的字符。
5、还可以将转换表达式中的48,更改为字符0,也能实现相同的效果。
6、多位的整型数转换为字符,如果整数有多位,将其转换为字符串,可以使用itoa函数。在程序中,定义一个字符类型数组s。
7、使用itoa函数将数值转换为相应的字符串,保存在数组s中。
8、运行程序,输入一个数值,电脑就会将其转换为相应的字符串。
功 能:把一整数转换为字符串
用 法: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。
备注:该函数的头文件是"stdlib.h"
程序例:
#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;
}
注释:编译系统:VC++6.0,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(num0){ //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 =(negative?str+1:str); //now start points the head of the string
ptr--; //now prt points the end of the string
while(startptr){
char temp = *start;
*start = *ptr;
*ptr = temp;
start++;
ptr--;
}
return str;
}
函数原形
char
*itoa(int
value,
char
*string,
int
radix)
将整形数value转换为其等价的字符串
头文件stdlib.h
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参数相同,便于函数的嵌套调用
例子:(来自MSDN,有删改)
#i
nclude
#i
nclude
void
main(
void
)
{
char
buffer[20];
int
i
=
3445;
itoa(
i,
buffer,
10
);
printf(
"String
of
integer
%d
(radix
10):
%s\n",
i,
buffer
);
itoa(
i,
buffer,
16
);
printf(
"String
of
integer
%d
(radix
16):
0x%s\n",
i,
buffer
);
itoa(
i,
buffer,
2
);
printf(
"String
of
integer
%d
(radix
2):
%s\n",
i,
buffer
);
system("pause");
}
int
iValue;//整型数
char
sz[10];//字符串
sprintf(sz,
"%d",
iValue);//这句需要头文件#include
stdio.h
/*或者*/
itoa(iValue,
sz,
10);
//这句需要头文件#include
ctype.h
sprintf类似于printf,printf比sprintf少第一个参数,就是直接在输出界面输出相应的东西,而sprintf就是将你要输出的东西按相应格式存放到第一个参数的字符串中。
itoa是直接将整型数转化成字符串
使用itoa函数。
原型:extern char *itoa(int i);
参考代码:
#includestdio.h
#includestdlib.h
int main()
{
int a=125;
char b[50];
printf("%s\n",itoa(a,b,10));//把10进制的125转成字符并输出。
return 0;
}
/*
扩展资料:
注意事项
itoa() 函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数(进制)。在上例中,转换基数为10,就意味着以10为转换进制。10:十进制;2:二进制。
itoa 并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
标准库中有sprintf,功能比这个更强,用法跟printf类似:
参考资料来源:百度百科-itoa函数
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流