具体用法举例分析更容易说明:
用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之间的小数点是不可省略的。
简单来说,就是将数值类型转化为字符类型。跟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]); } }输出结果:
