(sscanf|sprintf)的用法

xiaoxiao2021-02-28  43

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]); } }

输出结果:

转载请注明原文地址: https://www.6miu.com/read-2619258.html

最新回复(0)