头文件:stdio.h

函数原型:int sprintf(char *buffer, const char *format, [argument]…)

参数:

(1)buffer:是char类型的指针,指向写入的字符串指针;

(2)format:格式化字符串,即在程序中想要的格式;

(3)argument:可选参数,可以为任意类型的数据;

函数返回值:字符串的长度;

用处:

(1)格式化数字字符串:在这点上sprintf和printf的用法一样,只是打印到的位置不同而已,前者打印给buffer字符串,后者打印给标准输出,所以sprintf也可以用来将整型转化为字符串,比itoa效率高且如此地简便~比如:sprintf(buffer, “%d”, 123456);执行后buffer即指向字符串“123456”~

(2)连接字符:

下面通过两个例子来说明这个问题:

(a)连接以’\0’结束的字符串:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char buffer[10];
  5. char *a = “1234”;
  6. char *b = “5678”;
  7. sprintf(buffer, ”%s%s”, a, b);
  8. printf(”%s\n”, buffer);
  9. return 0;
  10. }

(b)连接结尾没有’\0’的字符数组或字符串缓冲区:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a[] = {‘1’, ‘2’, ‘3’, ‘4’};
  5. char b[] = {‘5’, ‘6’, ‘7’, ‘8’};
  6. char buffer[10];
  7. sprintf(buffer, ”%.4s%.4s”, a, b);
  8. printf(”%s\n”, buffer);
  9. return 0;
  10. }

(c)如果我们想动态获取要处理的字符缓冲区长度,则将上面sprintf改为:sprintf(buffer, “%.*s%.*s”, sizeof(a), a, sizeof(b), b);即可~

文章转载自:https://blog.csdn.net/weixin_43224243/article/details/82744577

sprintf的使用的更多相关文章

  1. php sprintf 函数的用法

    sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个 % 符号处,插入 arg1,在第二个 % 符 ...

  2. Linux C 字符串函数 sprintf()、snprintf() 详解

    一.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望. 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前 ...

  3. sprintf溢出的bug

    向printf.sprintf这种函数在编译时很难检查错误,所以程序员必须小心.比如我就遇到了这样的bug: void test() { ]; sprintf(t,"); } //执行spr ...

  4. sprintf数据库查询的作用

    $sql = sprintf("UPDATE file SET mimetype=null,title=null,size=null,protected=null WHERE id=%d&q ...

  5. sprintf()函数的用法

    Visual C++ sprintf()函数用法 转:http://blog.csdn.net/masikkk/article/details/5634886 在将各种类型的数据构造成字符串时,spr ...

  6. sprintf、fprintf和printf这三个函数

    都是把格式好的字符串输出,只是输出的目标不一样:1 printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向).2 sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多 ...

  7. Sprintf新解 (ZT)

     Sprintf新解 2012-08-06 11:26:45 分类: 原文地址:Sprintf新解 作者:harserm 由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已 ...

  8. sprintf()函数,把数字转换成字符串

    char str_2[10];     int a=1234321;     sprintf(str_2,"%d",a);

  9. PHP中函数sprintf .vsprintf (占位符)

    sprintf()格式化字符串写入一个变量中. vsprintf()格式化字符串些写入变量中. <?php $num1 = 123; $num2 = 456; $txt = vsprintf(& ...

  10. lr_save_string 和 sprintf 的使用

    lr_save_string 和 sprintf 的使用 一.lr_save_string 使用介绍1.该函数主要是将程序中的常量或变量保存为lr中的参数.格式: //将常量保存为参数 lr_save ...

随机推荐

  1. 包含min函数的栈、队列

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈/队列的最小元素的min函数.在该栈/队列中,调用min.入栈(入队列)及出栈(出队列)函数的时间复杂度都是O(1). 1. 包含min函数的栈 ...

  2. C++typedef的详细用法

    转自知乎的一段解释: 作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有.商业转载请联系作者 ...

  3. Django-DRF(视图相关)

    drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. Django REST ...

  4. 记录运行时间 StopWatch

  5. C学习笔记-字符串的格式化输出和输入

    存储方式 字符串是内存中一段连续的char空间,以'\0'结尾 字符串就是0结尾的连续char的内存 '\0' <=> 0 <=> null printf函数,putchar函 ...

  6. Rectangle

    题目描述 在 x 轴上有相互挨着的矩形, 这些矩形有一个边紧贴着 x 轴,现在给出每个矩形的长宽, 所有的矩形看作整体当作一个画布, 则可以在这个画布上画出的最大的矩形的面积是多少.(画出的矩形长和高 ...

  7. [bzoj4842][bzoj1283][Neerc2016]Delight for a Cat/序列_线性规划_费用流

    4842: [Neerc2016]Delight for a Cat_1283: 序列 题目大意:ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜 ...

  8. uboot传递参数'console=ttyXXX'的作用

    转载于:http://blog.csdn.net/jgdu1981/article/details/8643057 linux启动时uboot传递进console=ttyS0,115200n8的参数 ...

  9. Squares of a Sorted Array

    Given an array of integers A sorted in non-decreasing order, return an array of the squares of each ...

  10. 【Python】【demo实验13】【练习实例】【暂停1s输出】

    原题: 暂停1s输出 使用time 模块: >>> dir(time) ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__ ...