sscanf与sprintf是处理字符串问题的利器。sscanf可以理解为string+scanf,则sprintf可以理解为string+sprintf。如果想要从屏幕输入int型变量n并且将变量n输出,则可以写成:
scanf("%d",&n);
printf("%d",n);
实际上,上面的写法也可以写成
scanf(screen,"%d",&n);//screen表示屏幕
printf(screen,"%d",n);
scanf则表示screen的内容以%d的格式传输到n,printf表示把n以%d的格式传输到screen上。
sscanf(str,"%d",&n);//screen表示屏幕
sprintf(str,"%d",n);
sscanf表示把字符数组str内容以%d的格式写到n,sprintf是把n以%d的格式写到str字符数组。
#include<cstdio>
int main(){
int n ;
double d;
char str1[20]="456;12.3;beauty";
char str2[20];
sscanf(str1,"%d;%lf;%s",&n,&d,str2);
printf("n=%d," ",d=%lf," ",str2=%s\n",n,d,str2);
return 0;
}
输出为
n=456,d=12.300000,str2=beauty
#include<cstdio>
int main(){
int n = 12;
double d = 3.141;
char str1[20];
char str2[20] = "hello";
sprintf(str1,"%d;%0.2f;%s",n,d,str2);
printf("%s\n",str1);
return 0;
}
输出为
12;3.14;hello