鱼C论坛

 找回密码
 立即注册
查看: 6554|回复: 11

[函数快查] itoa -- 将整型转换为字符串类型

[复制链接]
发表于 2016-2-6 13:07:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
itoa 函数文档


函数概要:

itoa 函数将整型值转换为指定进制表示的标准字符串。

如果是十进制数,并且数值为负,那么转换后的字符串前边有一个负号('-');如果是其他进制数,其值始终被认为是无符号类型。

用于存放的字符串必须拥有足够的空间,以便可以容纳任何可能的数值:对于 2 进制数,需要使用 (sizeof(int)*8+1) 个字节来存放。比如在 16 位平台上,需要 17 个字节来存放;在 32 位平台上,则需要 33 个字节来存放。

注意:

该函数并不是标准的 C 语言函数,所以不能在所有的编译器中使用。

为了提高程序的可移植性,请使用 sprintf 函数代替。



函数原型:

  1. #include <stdlib.h>
  2. ...
  3. 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)  // 转换为八进制表示的字符串


演示:

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main ()
  4. {
  5.     int i;
  6.     char buffer[33];
  7.   
  8.     printf("Enter a number: ");
  9.     scanf("%d", &i);
  10.     itoa(i, buffer, 10);
  11.     printf("decimal: %s\n", buffer);
  12.     itoa(i, buffer,16);
  13.     printf("hexadecimal: %s\n", buffer);
  14.     itoa(i, buffer, 2);
  15.     printf("binary: %s\n", buffer);
  16.    
  17.     return 0;
  18. }
复制代码


版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!

评分

参与人数 2荣誉 +10 收起 理由
Justin1 + 5
jzzc + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2016-4-21 10:25:23 | 显示全部楼层
本帖最后由 SkyBurner 于 2016-4-21 10:28 编辑

[url=home.php?mod=space&uid=9]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2016-11-7 09:45:18 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2017-2-14 21:35:59 | 显示全部楼层
get it
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2018-3-7 09:12:46 | 显示全部楼层
sprintf   没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2018-7-14 19:41:27 | 显示全部楼层
小甲鱼老师,我有个问题,我照着你的示例程序用gcc编辑器敲了一遍想看看演示结果,我也添加了头文件#include<stdlib.h>,但是编译时会提示test_fun2.c : (.text+0x43): undefined reference to 'itoa' 使用了几次itoa函数,这个就会提示几次,然后还有一行提示:collect 2: ld returned 1 exit status
请问是什么原因导致这个的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2019-3-28 17:28:46 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2019-4-10 14:22:01 From FishC Mobile | 显示全部楼层
lee_studying 发表于 2018-7-14 19:41
小甲鱼老师,我有个问题,我照着你的示例程序用gcc编辑器敲了一遍想看看演示结果,我也添加了头文件#includ ...

上面说了不是标准c语言函数,Linux下的 stdlib.h 库没有 itoa 函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-3-10 10:17:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-3-10 10:23:25 | 显示全部楼层
  1. #include <stdlib.h>
  2. ...
  3. char *itoa(int value, char *str, int base);
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-8-22 19:42:06 | 显示全部楼层
get
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 3 天前 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-11-24 23:09

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表