C语言 --- sprintf用法

简介: C语言 --- sprintf用法

头文件:#include

sprintf()函数用于将格式化的数据写入字符串,其原型为:

int sprintf(char *str, char * format [, argument, ...]);

【参数】str为要写入的字符串;format为格式化字符串,与printf()函数相同;argument为变量。

除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数–格式化字符串–上。 printf()和sprintf()都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。

下面看一下具体用法

#include <stdio.h>
void test(){
  //1. 格式化字符串
  char buf[1024] = { 0 };
  sprintf(buf, "你好,%s,欢迎加入我们!", "John");
  printf("buf:%s\n",buf);
  memset(buf, 0, 1024);
  sprintf(buf, "我今年%d岁了!", 20);
  printf("buf:%s\n", buf);
  //2. 拼接字符串
  memset(buf, 0, 1024);
  char str1[] = "hello";
  char str2[] = "world";
  int len = sprintf(buf,"%s %s",str1,str2);
  printf("buf:%s len:%d\n", buf,len);
  //3. 数字转字符串
  memset(buf, 0, 1024);
  int num = 100;
    int f = 100.111;
  sprintf(buf, "%d", num);
  memset(buf, 0, 1024);
    int f = 100.111;
    sprintf(buf, "%f", f);
  printf("buf:%s\n", buf);
    //4. 设置对齐与输出格式
  //设置宽度 右对齐
  memset(buf, 0, 1024);
  sprintf(buf, "%8d", num);
  printf("buf:%s\n", buf);
  //设置宽度 左对齐
  memset(buf, 0, 1024);
  sprintf(buf, "%-8d", num);
  printf("buf:%s\n", buf);
  //转成16进制字符串 小写
  memset(buf, 0, 1024);
  sprintf(buf, "0x%x", num);
  printf("buf:%s\n", buf);
  //转成8进制字符串
  memset(buf, 0, 1024);
  sprintf(buf, "0%o", num);
  printf("buf:%s\n", buf);
}
int main(void)
{
    test();
    return 0;
}

参看链接:

https://zhuanlan.zhihu.com/p/82096000

https://blog.csdn.net/m0_37714594/article/details/80398276


相关文章
|
2月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
229 88
|
3月前
|
存储 缓存 编译器
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(下篇)
scanf处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存进⾏解读。 解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌。
162 2
|
3月前
|
存储 C语言
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(上篇)
printf 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式。
75 1
|
5月前
|
存储 C语言
c语言scanf函数用法
c语言scanf函数用法
|
5月前
|
存储 C语言
|
5月前
|
C语言
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
52 1
|
5月前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
77 2
|
4月前
|
存储 C语言
C语言中static关键字的作用与用法解析
C语言中static关键字的作用与用法解析
|
5月前
|
程序员 C语言
C语言memcpy()函数用法
C语言memcpy()函数用法
|
5月前
|
C语言
C语言strcpy函数用法
C语言strcpy函数用法