【c语言】string里关于sscanf和sprintf的使用

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

以上为我在学《算法笔记》时的心得体会

上一篇:sscanf与sprintf


下一篇:关于sprintf_s,弹出Expression:(“Buffer too small”,0)