打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sscanf格式化输入函数的用法小程序(YC)
sscanf函数类似于scanf,都是作为输入用,但是scanf以stdin作为输入源,前者可以自定义。
sscanf函数用处很多,下面说明下具体用法:
1.提取字符串
sscanf("hello","%s",str);
这样str就得到了hello字符串。

2.提取指定长度的字符串
sscanf("hello world","%5s",str);
str只取前面5个字节的字符串,即hello

3.取到指定字符为止
sscanf("hello world","%[^w]",str);
str只取到w之前的字符串,即str为hello 。

4.取仅包含指定字符的字符串
sscanf("hello world 12345 CDO","[a-z1-9]",str);
str只取数字和小写字母

5.取到指定字符集为止
sscanf("hello ABCDE","[^A-Z]",str);
str只包含大写字母

很实用的函数


小例子:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    char str[100]="LEDNO=1&STATUS=ON&S",tmp[25];
    int i=0;

    printf("str length=%d\n",strlen(str));
    sscanf(str,"%[^&]",tmp);//遇到&就结束,只保存&之前的数据
    while(str[i]!='\0') {
    str[i]=str[i+strlen(tmp)+1];
    i++;
    }
    i=0;
    printf("new str:%s\n",str);
    printf("%s,length=%d",tmp,strlen(tmp));
    return 0;
}

运行结果:
 
 
另外一种写法(是为了验证字符串的原因):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    char str[100]="LEDNO=1&STATUS=ON&s",tmp[25],tmp2[25];
    int i=0,length;

    printf("str length=%d\n",strlen(str));
    sscanf(str,"%[^&]",tmp);//遇到&就结束,只保存&之前的数据
    while(str[i+strlen(tmp)+1]!='\0') {
    tmp2[i]=str[i+strlen(tmp)+1];
    i++;
    }
    length = i;
    tmp2[length]='\0';
    i=0;
    printf("new str:%s,ilength=%d,strlength=%d\n",tmp2,length,strlen(tmp2));
    printf("%s,length=%d",tmp,strlen(tmp));
    return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
sscanf函数的高级用法
请用代码写一个算法测试回环字符串函数
获取字符串、字符数组的长度
strcpy
sscanf函数的用法
sscanf,sscanf_s及其相关用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服