Loading

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

posted @ 2019-04-14 00:42  luoyesiqiu  阅读(955)  评论(0编辑  收藏  举报