sscanf与sprintf

看到sscanf与sprintf,大家一定会联想他们与scanf、printf的关系。
下面就介绍一下sscanf与sprintf函数:
sscanf:

int sscanf(
   const char *buffer,
   const char *format [,
      argument ] ... 
);

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。举几个例子来说明sscanf函数的用法:
1.

    char buf[512];
    sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
    printf("%s\n", buf);   //123456

2.

     sscanf("123456 ", "%4s", buf);//取4个字符串存入buf中

    printf("%s\n", buf);   //1234

3.

    char buf[128];
    sscanf("123456 abcdedf", "%[^5]", buf);   //匹配到5以前的字符 
    printf("%s\n", buf);    //1234

4.

    char buf[128];
    sscanf("123456abcdedfBCDEF", "%[1-9a-f]", buf);   //取在1-9中的数字和a-f的字母,如果取的是1-5中的数字,那么取到最后一个数字就会停止,不会继续往后走。
    printf("%s\n", buf);   //123456abcdef

sprintf

   int sprintf(
   char *buffer,
   const char *format [,
      argument] ... 
);

和sscanf的功能相对应,sprintf的功能是把格式化的数据写入某个字符串中。举个例子:

    char s[64];
    sprintf(s, "%d", 123);    //将整数123 打印成一个字符串保存在s中
    printf("%s", s);

上一个完整的例子:
  产生10 个[0, 100)之间的随机数,并将他们打印到一个字符数组s 中,以逗号分隔开。

#include <stdio.h>
#include<Windows.h>
#include <stdlib.h> 
#include <time.h> 
#pragma warning(disable:4996)

int main() {
    srand(time(0));
    char s[64];
    int offset = 0;
    for (int i = 0; i < 10; i++) {
        offset += sprintf(s + offset, "%d,", rand() % 100);
    }
    s[offset - 1] = '\n';//将最后一个逗号换成换行符。
    printf(s);
    system("pause");
    return 0;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值