sscanf使用笔记

本文详细介绍了C语言中sscanf函数的基本用法及多种应用场景,包括从字符串中提取数值、字符和特定格式的数据等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
///int sscanf(const char *str, const char *format, ...);
///sscanf功能是从字符串按不同格式提取到变量

int main(void){
    printf("sscanf基本用法\n");
    char str01[10][20] = {0};
    int arr01[5][5] = {0};
    ///1.基本取数值
    sscanf("2017.09.20", "%d.%d.%d", &arr01[0][0], &arr01[0][1], &arr01[0][2]);
    //输出: 2017 9 20
    printf("1: %d %d %d\n", arr01[0][0], arr01[0][1], arr01[0][2]);

    ///2.取指定长度的字符
    sscanf("tudou123", "%2s", str01[0]);
    //输出: tu
    printf("2: %s\n", str01[0]);

    ///3.取指定长度的整数
    sscanf("123456", "%3d", &arr01[0][3]);
    //输出: 123
    printf("3: %d\n", arr01[0][3]);

    ///4.取到指定字符为止的字符串, 遇到空格为止
    sscanf("zhou456 hehe", "%[^ ]", str01[1]);
    //输出: zhou456
    printf("4: %s\n", str01[1]);

    ///5.取仅包含指定字符集的字符串
    sscanf("54321abcdeABCDE", "%[1-9a-z]", str01[2]);
    //输出: 54321abcde
    printf("5: %s\n", str01[2]);

    ///6.取到指定字符集为止的字符串
    sscanf("ABCDE12345abcde", "%[^a-z]", str01[3]);
    //输出: ABCDE12345
    printf("6: %s\n", str01[3]);

    ///7.取出 & 与 $ 之间的字符串
    ///%*[]是舍弃的意思
    sscanf("abc&hello$hi", "%*[^&]&%[^$]", str01[4]);
    //输出: hello
    printf("7: %s\n", str01[4]);

    ///8.带空格的字符串处理
    sscanf("abc 123", "%s%s", str01[5], str01[6]);
    //输出: abc 123
    printf("8: %s %s\n", str01[5], str01[6]);

    //(1)%[..],当字符属于方括号里表达式表示的字符集时继续读取,否则停止.方括号里>的和正则表达式差不多,^是"排除..."的意思  
    //(2)%*[..],直接跳过方括号里的字符集并继续读取
    return 0;
}                                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值