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
以上为我在学《算法笔记》时的心得体会