C语言sprintf和sscanf函数用法
以前刚用C语言的时候,觉得字符串很难处理,后来用多了,发现其实并非如此,C语言也提供了许多函数给程序员使用。今天记录一下两个常用的两个字符串处理函数:sprintf和sscanf
1. sprintf
从名称上来看,这个函数名称由三部分组成:
- s 代表字符串(string)
- print 代表打印
- f 代表格式化(format)
这样拆分,可以大概知道它是干嘛用的了,相对于我们常用的用来处理输出流的printf,sprintf是用来处理字符串的。实际上这个函数,是把数据按格式打印到字符串中,常用于将数字转换成字符串。
sprintf函数所在头文件:stdio.h
函数原型
int sprintf ( char * str, const char * format, ... );
- str 用来存储结果的内存的指针
- format 格式化规则
例子
将数字转换成字符串
#include <stdio.h>
#include <string.h>
int main(void){
int n=90;
char buf[3];
memset(buf,'a',3);
sprintf(buf,"%d",n);
printf("This string is : %s",buf);
return 0;
}
输出:
This string is : 90
注:转换成字符串以后,会自动在字符串结尾插入'\0',所以要注意第一个参数的内存长度
2. sscanf
从名称上来看,这个函数名称由三部分组成:
- s 代表字符串(string)
- scan 代表扫描
- f 代表格式化(format)
这样拆分,可以大概知道它是干嘛用的了,相对于我们常用的用来处理输入流的scanf,sscanf是用来处理字符串的。实际上这个函数,是将字符串中的内容按格式扫描到变量中,常用于将字符串转换成数字。
sscanf函数所在头文件:stdio.h
函数原型
int sscanf ( const char * s, const char * format, ...);
- s 指定被扫描的字符串
- format 格式化规则
例子
把字符串转换成数字
#include <stdio.h>
int main(void){
const char* str="90";
int num;
sscanf(str,"%d",&num);
printf("This number is : %d",num);
return 0;
}
输出:
This number is : 90