C基础——itoa

itoa是广泛应用的非标准**C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。但是,大多数的编译器(如**Windows上的)通常在<stdlib.h>头文件中包含这个函数。

字符串缓冲区大小的确定

char* itoa(int val, char* dstbuf, int radix);

itoa() 函数接受三个参数,第一个参数表示要转换为字符类型的整型,第二个参数表示目标字符串缓冲区,第三个参数表示转换的进制数,比如10进制,2进制,8进制等,10 进制的整型 42 在十进制下仍为42,在二进制下则为:101010

#include <stdlib.h>

int main(int, char**)
{
    int a = 42;
    char arr[3];
                    // arr数组不需初始化
                    // 至少 3 个字节,才可保存变量a,否则会报错
                    // arr[0] = '4'
                    // arr[1] = '2'
                    // arr[2] = '\0'
    itoa(a, arr, 10);

    char arr2[7];
                    // 至少需要容纳七个字节
                    // arr[0] = '1'
                    // arr[1] = '0'
                    // arr[2] = '1'
                    // arr[3] = '0'
                    // arr[4] = '1'
                    // arr[5] = '0'
                    // arr[6] = '\0'
    itoa(a, arr, 2);

    return 0;
}

平台无关的通用的转换函数:sprintf

sprinf()是C语言标准库(<stdio.h>)中的函数;

int sprintf(char* dstbuf, const char* format, ...);

sprintf(),能力更强,应用更广;其第一个参数表示存放内容的字符串缓冲区,后续的参数与printf()的参数设置相同,也即将打印到控制台的内容保存到第一个参数所在的字符串缓冲区。

#include <stdio.h>
int main(int, char**)
{
    int a = 42;
    char arr[3];
    sprintf(arr, "%d", a);
    return 0;
}

error C4996: ‘itoa’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details.

如错误提示所说,将itoa的函数名改为_itoa或者_itoa_s

References

[1] C语言itoa()函数和atoi()函数详解(整数转字符)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值