scanf可以看作string+scanf
sprintf可以看作string+printf
以sscanf为例:
#include<stdio.h>
int main()
{
int n;
char str[100]="123";
sscanf(str,"%d",&n);
printf("%d\n",n);
}
//输出结果为 123(整型)
sscanf的作用就是把字符数组str中的内容以 %d 的格式(从左到右)写到n中
以sprintf为例:
#include<stdio.h>
int main()
{
int n=123456;
char str[100];
sprintf("%s\n",str);
}
//输出结果为123456(字符串)
同样的,我也可以使用sscanf将字符数组str中的内容按格式写到相同格式的char型数组str2中:
#include<stdio.h>
int main()
{
int n;
double db;
char str[100] = " 2048:3.14,hello", str2[100];
sscanf(str, "%d:%lf,%s", &n, &db, str2);
printf("n=%d,db=%.2f,str2=%s\n", n, db, str2);
}
//结果输出: n=2048,db=3.14,str2=hello
sprintf则是将不同的变量按相同格式的排序写到字符数组str中:
#include<stdio.h>
int main()
{
int n=12;
double db=3.1415;
char str[100] , str2[100]="good";
sprintf(str,"%d,%.2f,%s\n", n, db, str2);
printf("str=%s\n", str);
}
//输出结果为: str=12:3.14,good
以上为我在学《算法笔记》时的心得体会