AI智能摘要
文章介绍了C/C++中sprintf和sscanf函数在类型转换与字符串处理中的巧妙应用。通过多个代码示例,展示了sprintf如何将各种数据类型格式化并写入字符串,实现高效的数据拼接与精度控制,同时提醒注意缓冲区溢出问题。sscanf则用于从字符串中按格式提取数据,两者与printf、scanf用法相似但目标不同。这些函数简化了类型转换操作,提升了编程灵活性。
— 此摘要由AI分析文章内容生成,仅供参考。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
int main() {
printf("=== C语言sprintf()函数用法演示 ===\n\n");
printf("1. 基本用法演示\n");
printf("================\n");
char str[100];
int num = 123;
sprintf(str, "数字是: %d", num);
printf("sprintf结果: %s\n", str);
printf("说明: sprintf将格式化的字符串写入字符数组,而不是输出到屏幕\n");
printf("\n2. 精度控制演示\n");
printf("================\n");
char str[20];
double f = 14.309948;
sprintf(str, "%6.2f", f);
printf("原始数值: %.6f\n", f);
printf("格式化结果: '%s'\n", str);
printf("说明: %%6.2f 表示总宽度6位,小数点后2位\n");
printf("\n3. 多个数值连接演示\n");
printf("==================\n");
char str[30];
int a = 20984, b = 48090;
sprintf(str, "%3d%6d", a, b);
printf("数值a: %d, 数值b: %d\n", a, b);
printf("连接结果: '%s'\n", str);
printf("说明: %%3d%%6d 将两个整数按指定宽度连接\n");
printf("\n4. 字符串连接演示\n");
printf("================\n");
char str[20];
char s1[5] = {'A', 'B', 'C', '\0'};
char s2[5] = {'T', 'Y', 'X', '\0'};
sprintf(str, "%.3s%.3s", s1, s2);
printf("字符串s1: %s\n", s1);
printf("字符串s2: %s\n", s2);
printf("连接结果: %s\n", str);
printf("说明: %%.3s%%.3s 连接两个字符串,每个最多取3个字符\n");
return 0;
}
int a,b;
printf("%d%d",a,b);//这是输出的写法
string s;
sprintf(s,"%d%d",a,b);//这是sprintf的写法
- THE END -
最后修改:2025年10月1日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.tinxin.cn/2025/10/01/219.html
共有 0 条评论