#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
void demo_sprintf()
{
char *a = "hello";
int b = -11;
char str[100]; // sprintf输入只能是字符数组,或者是malloc的字符指针如:char *str = malloc(sizeof(char)*100);
// 拼接 各种数据类型 组成字符串
sprintf(str, "hh %d %s", b, a);
printf("%s\n", str);
printf("%d\n", strlen(str));
// 将各种类型转成字符串
float f = 3.1415926;
sprintf(str, "%5.2f||", f); // float转字符串,指定 总的宽度(宽度包括小数点,不够左侧补空格,够了直接打印),小数点的个数
printf("%s\n", str);
sprintf(str, "%d", b); // int转字符串
printf("%s\n", str);
// 复制一个字符串的内容另一个字符串
sprintf(str, "%s", a); // 从头开始复制
printf("%s\n", str);
sprintf(str, "%s", str+2); // 从指定位置开始 复制, 这个只能指定开头,不能指定结尾
printf("%s\n", str);
// 特色format的使用
sprintf(str, "%04d||%d", b, b); // 宽度是4, 不够就补零, 大于等于四就全打印出来
printf("%s\n", str); // -011
sprintf(str, "%4d||%d", b, b); // 宽度是4, 不够左侧补零
printf("%s\n", str);
sprintf(str, "%-4d||%d", b, b); // 宽度是4, 不够右侧补零
printf("%s\n", str);
sprintf(str, "%p", str); // 指针
printf("%s\n", str);
}
int main(){
demo_sprintf();
while(1);
return 0;
}
打印结果
hh -11 hello
12
3.14||
-11
hello
llo
-011||-11
-11||-11
-11 ||-11
000000000065FD70
详情知识链接:
整理:C++中sprintf()函数的使用详解