sscanf和sprintf的用法

函数原型:

int sscanf(const char *str, const char *format, …);

sscanf()与scanf()作用相似,只不过后者是从键盘中输入,而前者则是从指定的字符串中提取数据。
buffer

参数:

存储的数据

format

窗体控件字符串。

argument

可选自变量

sscanf()的返回值是它成功读取的字符串的个数(不过一般不用去关注这个返回值,知道一下就好)
如:

    char arr[] = "hello world";
    int n;
    n = sscanf(arr, "%s%s", str1, str2);

这里n的值为2。

注意:sscanf读取字符串时默认以空格为分割

#include <stdio.h>

void main()
{
    char arr[] = "abdce fghij klnm opqrst 1234";
    char str1[10] = {0};
    char str2[10] = {0};
    char str3[10] = {0};
    char str4[10] = {0};
    int m = 0;
    int n;

    n = sscanf(arr, "%*s%3s%s%s%s%d", str1, str2, str3, str4, &m);

    printf("%s\n", str1);
    printf("%s\n", str2);
    printf("%s\n", str3);
    printf("%s\n", str4);
    printf("%d\n", m);
    printf("%d\n", n);

}

仔细阅读上面这段代码,包含了sscanf的几种用发,首先%*s表示它所对应的字符串就跳过,不用输入到变量(这里跳过的就是abdce ),%3s表示只输出该对应字符串的前三个字符,但是值得注意的这个字符串余下的部分不会被丢弃,会继续存储到下一个变量中。记住,后面的变量的这些参数都是传入的地址。


函数原型:

int sprintf(char *str, const char *format, …);

sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。

//把整数123456 打印成一个字符串保存在str 中。

sprintf(str, “%d”, 123456); //产生”123456”;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值