C语言中的`sprintf`和`sscanf`两个函数介绍

C语言中的sprintfsscanf两个函数介绍

sprintf

  • 作用是格式化字符串
int sprintf( char *buffer, const char *format [, argument] ... );

   buffer

   Storage location for output  //输出的存储位置 

   format

   Format-control string   //格式控制字符串

   argument

   Optional arguments   //可选参数
  • 我在这块罗列几个功能

    1. 将数字变量转换为字符串

    2. 得到整型变量的16进制和8进制字符串。

    3. 连接多个字符串。

char str[256] = { 0 };
    int data = 2048;

    sprintf(str, "%d", data); //将data转换为字符串
    printf("%s\n", str);

    sprintf(str, "0x%X", data);//获取data的十六进制
    printf("%s\n", str);

    sprintf(str, "0%o", data); //获取data的八进制
    printf("%s\n", str);

    const char *s1 = "Hello";
    const char *s2 = "World";

    sprintf(str, "%s %s", s1, s2);//连接字符串s1和s2
    printf("%s\n", str);

sscanf

  • 将参数buffer的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内。
int sscanf( const char *buffer, const char *format [, argument ] ... );
buffer

Stored data  //存储的数据

format

Format-control string  //格式控制字符串

argument

Optional arguments  //可选参数

我在这儿罗列几条它的功能
  1. 根据格式从字符串中提取数据。如从字符串中取出整数、浮点数和字符串等。
  2. 取指定长度的字符串
  3. 取到指定字符为止的字符串
  4. 取仅包含指定字符集的字符串
  5. 取到指定字符集为止的字符串
sscanf可以支持格式字符%[ ]:
  1. -: 表示范围,如:%[1-9]表示只读取1-9这几个数字, %[a-z]表示只读取a-z小写字母,类似地
    %[A-Z]只读取大写字母
  2. ^: 表示不取,如:%[^1]表示读取除’1’以外的所有字符 ,%[^/]表示除/以外的所有字符
  3. ,: 范围可以用”,”相连接 如%[1-9,a-z]表示同时取1-9数字和a-z小写字母
  4. 原则:从第一个在指定范围内的数字开始读取,到第一个不在范围内的数字结束%s 可以看成%[] 的一个特例 %[^ ] (注意^后面有一个空格!)
const char *s = "http://www.baidu.com:1234";
    char protocol[32] = { 0 };
    char host[128] = { 0 };
    char port[8] = { 0 };
    sscanf(s, "%[^:]://%[^:]:%[1-9]", protocol, host, port);

    printf("protocol: %s\n", protocol);
    printf("host: %s\n", host);
    printf("port: %s\n", port);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值