#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); // -011sprintf(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
123.14||
-11
hello
llo
-011||-11-11||-11
-11 ||-11
000000000065FD70
详情知识链接:
整理:C++中sprintf()函数的使用详解