鱼C论坛

 找回密码
 立即注册
查看: 18000|回复: 20

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

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

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

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

x
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[33];
  
    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)所有,转载请注明来源!

评分

参与人数 4荣誉 +16 鱼币 +6 贡献 +3 收起 理由
断弦冷訫 + 1 + 1 感谢楼主无私奉献!
Crory + 5 + 5 + 3 感谢楼主无私奉献!
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
回复 支持 3 反对 1

使用道具 举报

发表于 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 | 显示全部楼层
#include <stdlib.h>
...
char *itoa(int value, char *str, int base);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 19:42:06 | 显示全部楼层
get
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-21 17:43:27 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 16:28:12 | 显示全部楼层
nice!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-5 15:10:18 | 显示全部楼层
我这   2021 3 5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-3 15:33:43 | 显示全部楼层
学习ing
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-7 14:37:02 | 显示全部楼层
再看一遍 没太看懂哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 20:49:36 | 显示全部楼层
2316829671 发表于 2019-4-10 14:22
上面说了不是标准c语言函数,Linux下的 stdlib.h 库没有 itoa 函数

Linux下怎么可能没有 itoa这个函数 , 你用的是假的Linux吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-17 20:52:20 | 显示全部楼层
港谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-21 09:54:08 | 显示全部楼层
oh,I see!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-23 10:51:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-21 19:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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