itoa -- 将整型转换为字符串类型
itoa 函数文档函数概要:
itoa 函数将整型值转换为指定进制表示的标准字符串。
如果是十进制数,并且数值为负,那么转换后的字符串前边有一个负号('-');如果是其他进制数,其值始终被认为是无符号类型。
用于存放的字符串必须拥有足够的空间,以便可以容纳任何可能的数值:对于 2 进制数,需要使用 (sizeof(int)*8+1) 个字节来存放。比如在 16 位平台上,需要 17 个字节来存放;在 32 位平台上,则需要 33 个字节来存放。
注意:
该函数并不是标准的 C 语言函数,所以不能在所有的编译器中使用。
为了提高程序的可移植性,请使用 sprintf 函数代替。
函数原型:
#include <stdlib.h>
...
char *itoa(int value, char *str, int base);
参数解析:
参数含义
value 待转换的整型数值
str 用于存放转换结果的字符串
base 1. 指定转换结果用多少进制数来表示
2. 取值范围是 2~36(2 表示二进制,10 表示十进制……)
返回值:
返回值是一个指向转换结果的指针,同 str 参数。
可移植性:
该函数并不是标准的 C 语言函数,所以不能在所有的编译器中使用。
为了提高程序的可移植性,请使用 sprintf 函数代替:
[*]sprintf(str,"%d",value)// 转换为十进制表示的字符串
[*]sprintf(str,"%x",value)// 转换为十六进制表示的字符串
[*]sprintf(str,"%o",value)// 转换为八进制表示的字符串
演示:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer;
printf("Enter a number: ");
scanf("%d", &i);
itoa(i, buffer, 10);
printf("decimal: %s\n", buffer);
itoa(i, buffer,16);
printf("hexadecimal: %s\n", buffer);
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);
return 0;
}
版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!
本帖最后由 SkyBurner 于 2016-4-21 10:28 编辑
感谢 get it sprintf 没看懂 小甲鱼老师,我有个问题,我照着你的示例程序用gcc编辑器敲了一遍想看看演示结果,我也添加了头文件#include<stdlib.h>,但是编译时会提示test_fun2.c : (.text+0x43): undefined reference to 'itoa' 使用了几次itoa函数,这个就会提示几次,然后还有一行提示:collect 2: ld returned 1 exit status
请问是什么原因导致这个的啊 感谢{:5_102:} lee_studying 发表于 2018-7-14 19:41
小甲鱼老师,我有个问题,我照着你的示例程序用gcc编辑器敲了一遍想看看演示结果,我也添加了头文件#includ ...
上面说了不是标准c语言函数,Linux下的 stdlib.h 库没有 itoa 函数 {:5_109:} #include <stdlib.h>
...
char *itoa(int value, char *str, int base); get 1 nice! 我这 2021 3 5 学习ing
再看一遍 没太看懂哈哈 2316829671 发表于 2019-4-10 14:22
上面说了不是标准c语言函数,Linux下的 stdlib.h 库没有 itoa 函数
Linux下怎么可能没有 itoa这个函数 , 你用的是假的Linux吧 港谢! oh,I see! {:5_102:}
页:
[1]
2