zoukankan      html  css  js  c++  java
  • itoa()函数和sprintf()函数

    itoa()函数

    itoa 为c语言的一个函数。itoa 函数是一个广泛应用的,从非标准扩展到标准的C语言。它不能被移植,因为它不是标准定义下的C语言,但是,编译器通常在一个不遵循程式标准的模式下允许其通过header ,因为它是一个从逻辑对应到标准库的函数。itoa 取整数输入值,并将其转换为相应进制数字的字符串。

    用法:

    itoa(i ,num ,10 );
    i ---- 需要转换成字符串的数字
    num ---- 转换后保存字符串的变量
    10 ---- 转换数字的基数(即进制)。10就是说按10进制转换数字。还可以是2,8,16等等进制类型
    返回值:指向num这个字符串的指针
    itoa() 函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数(进制)。
     
    itoa 并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,要用sprintf。
    itoa函数使用有风险,经常会wa,少用吧。
    标准库中有sprintf,功能比这个更强,用法跟printf类似:
    char str[255];
    sprintf(str, "%x", 100); //将100转为16进制表示的字符串。

    sprintf()函数

    sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。

    度娘,传送门:https://baike.baidu.com/item/sprintf/9703430?fr=aladdin

    sprintf函数的格式:int sprintf( char *buffer, const char *format [, argument,...] );
    前两个参数固定,可选参数任意。buffer是字符数组名;format是格式化字符串(像:"=%6.2f%#x%o",%与#合用时,自动在十六进制数前面加上0x)。

    只要在printf中可以使用的格式化字符串,在sprintf都可以使用。其中的格式化字符串是此函数的精华。

    具体的看人家的博客。。。

    传送门1:http://blog.csdn.net/kevinhg/article/details/40409041

    传送门2:http://blog.csdn.net/zenail501129/article/details/22991485

     

     
  • 相关阅读:
    乘法DAC一点知识
    #4 判断字符串是否为整数
    #3 不使用循环输出1到100
    #2 判断一个字符串是否包含重复字符
    #22 结语
    #1 组成互不相同且不重复的三位数
    #21 Python异常
    #19 re&jieba模块
    2020国庆正睿笔记
    2019正睿csp-s赛前冲刺
  • 原文地址:https://www.cnblogs.com/ZERO-/p/7223069.html
Copyright © 2011-2022 走看看