sscanf类似于scanf函数,,scanf从键盘读取用户输入,scanf从指定格式化字符串读取输入,sscanf多了第一个参数,char的数组,sscanf会从这个char的数组中读取相关内容。
#include <stdio.h>
int scanf(const char *format, ...);
int sscanf(const char *str, const char *format, ...);
char a[100] = "43*56=";
int i, j;
char c;
sscanf(a, "%d%c%d=", &i, &c, &j);//从字符串里面把想得到的字符或者整数提取出来
sprintf和printf函数功能类似,printf函数将格式化结果输出到屏幕,sprintf将格式化结果输出到字符串,sprint使用方法与printf类似,唯一区别是增加了第一个参数,第一个参数是一个char数组。
#include <stdio.h>
int printf(const char *format, ...);
int sprintf(char *str, const char *format, ...);
int test01()
{
char a[100];
int i = 100;
sprintf(a, "%s%d%x", "hello world", i, i);
printf("%s\n", a);
return 0;
}
测试参考源码:
#include <stdio.h>
int test01()
{
char a[100];
int i = 100;
sprintf(a, "%s%d%x", "hello world", i, i);
printf("%s\n", a);
return 0;
}
int test02()
{
char a[100] = "56+702";
int i;
int j;
sscanf(a, "%d+%d", &i, &j);
printf("%d + %d = %d\n", i, j, i + j);
return 0;
}
int main()
{
char a[100] = "43*56=";
int i, j;
char c;
sscanf(a, "%d%c%d=", &i, &c, &j);//从字符串里面把想得到的字符或者整数提取出来
printf("%d, %c, %d\n", i, c, j);
int res = 0;
switch(c)
{
case '+':
res = i + j;
break;
case '-':
res = i - j;
break;
case '*':
res = i * j;
break;
case '/':
res = i / j;
break;
default:
res = 0;
}
sprintf(a, "%d%c%d=%d", i, c, j, res);
printf("%s\n", a);
puts("##################################################");
puts("##################################################");
test01();
puts("##################################################");
puts("##################################################");
test02();
return 0;
}
测试结果: