sscanf:
将固定格式的字符数组内的一些数字字符,转换成整形;
具体用法举例分析更容易说明:
用IP来举例(可以用于判断IP是否合法)
#include<stdio.h>
int main()
{
char ip[20];
int i1,i2,i3,i4;
gets(ip);//IP的样例:192.168.1.130
sscanf(ip, "%d.%d.%d.%d", &i1, &i2, &i3, &i4);
printf("%d\n",i1);
printf("%d\n",i2);
printf("%d\n",i3);
printf("%d\n",i4);
}
输出结果
很明显,字符串被分为4个整数;特别要注意的一个细节就是因为ip的是用小数点来隔开四个整数,所以在sscanf中%d之间的小数点是不可省略的。
sprintf:
简单来说,就是将数值类型转化为字符类型。跟sscanf相反。举例分析:
#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
int i,x=12345;
sprintf(a,"%d",x);//把整形x转化为字符数组
for(i=0;i<5;i++)//把字符串一个一个输出
{
printf("%c\n",a[i]);
}
}
输出结果:
除此之外sprintf还可以将两个字符数组连接:
#include<stdio.h>
#include<string.h>
int main()
{
char a[20]={"Hello"},b[20]={"Word"},sum[20];
int i;
sprintf(sum,"%s %s",a,b);//链接字符串a和b 如果字符串a b之间没有空格则连接的字符串ab之间也没有空格
for(i=0;i<10;i++)
{
printf("%c",sum[i]);
}
}
输出结果: