目录
1.sprintf函数
1.1功能
把格式化的数据写入某个字符串缓冲区。
sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出
1.2标准库
<stdio.h>
1.3函数声明
int sprintf(char *string, char *format [,argument,...]);
-
string-- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
-
format-- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是%[flags][width][.precision][length]specifier
-
[argument]...:根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
-
返回值
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
1.4使用示范
int main()
{
struct stu
{
char name[10];
int age;
};
struct stu s = { "zhangsan",18 };
char str[100] = { 0 };
sprintf(str, "%s %d", s.name, s.age);
printf("%s", str);
return 0;
}
输出结果:
结构体数据已经存储在字符串str中
2.sscanf函数
2.1功能
sscanf函数是C语言中的一个输入/输出函数,它的作用是从一个字符串中提取字符串,浮点数,整数等值,并将其保存到指定的变量中。一句话总结就是从字符串读取格式化输入。
2.2标准库
<stdio.h>
2.3函数声明
int sscanf(const char *str, const char *format, ...)
2.4使用示范
int main()
{
char s[100] = "lisi 18";
struct stu
{
char name[10];
int age;
};
struct stu a = { 0 };
sscanf(s, "%s %d", a.name, &a.age);
printf("%s %d", a.name, a.age);
return 0;
}
运行结果:
总结
sscanf函数:从字符串中提取格式化数据
sprintf函数:将格式化数据放到字符串中