C语言 --- sprintf用法

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 --- sprintf用法相关的知识,希望对你有一定的参考价值。

头文件:#include <stdio.h>

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

以上是关于C语言 --- sprintf用法的主要内容,如果未能解决你的问题,请参考以下文章

C语言 --- sprintf用法

c数组问题sprintf

sprintf()函数的用法

C语言 sprintf()函数--有难度的!!!

sprintf用法

SQL Select 语句的用法