一、sscanf语句:
描述:
C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。
说明:
sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。
返回值:
如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
实例1:
#include<cstdio>
#include<cstring>
int day,year;
char weekday[20],month[20],dtm[100];
int main() {
strcpy(dtm,"Saturday March 25 1989");
sscanf(dtm,"%s %s %d %d",weekday,month,&day,&year);
printf("%s %d,%d=%s\n",month,day,year,weekday);
return(0);
}
运行结果:
March 25,1989=Saturday
实例2:将字符数组s1、s2转换成数字a、b
#include<cstdio>
char s1[]="123",s2[]="456";
int a,b;
int main() {
sscanf(s1,"%d",&a);
sscanf(s2,"%d",&b);
printf("%d",a+b);
return(0);
}
运行结果:
579
二、sprintf语句:
描述:
C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
返回值:
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
实例1:
#include<cstdio>
#include<cmath>
char str[30];
int main() {
sprintf(str, "Pi 的值 = %f", M_PI);
puts(str);
return(0);
}
运行结果:
Pi 的值 = 3.141593
如果要将字符串类型的变量转化为数字,可以使用sscanf,同样也可以使用sprintf将数字输入到字符数组。sscanf和sprintf同法与scanf和printf相同,只是在参数第一个位置加入了字符数组。