您现在的位置: 爱51代码网 >> 范文 >> 文章正文
C语言sscanf函数的总结

在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。

这些函数的使用都学习林俊德心得体会很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。

以下源代码是本人测试的源文件,附带讲解注释。

    /*****************************************************
    ** Name         : sscanf.c 
    ** Author       : gzshun
    ** Version      : 1.0
    ** Date         : 2011-12
    ** Description  : sscanf function
    ******************************************************/ 
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
     
    static void sscanf_test(void); 
     
    static void sscanf_test(void) 
    { 
        int ret; 
        char *string; 
        int  digit; 
        char buf1[255]; 
        char buf2[255]; 
        char buf3[255]; 
        char buf4[255]; 
     
        /*1.最简单的用法*/ 
        string = "china beijing 123"; 
        ret = sscanf(string, "%s %s %d", buf1, buf2, &digit); 
        printf("1.string=%s\n", string); 
        printf("1.ret=%d, buf1=%s, buf2=%s, digit=%d\n\n", ret, buf1, buf2, digit); 
        /*
        **执行结果:
        **1.ret=2, buf1=china, buf2=beijing, digit=123
        **可以看出,sscanf的返回值是读取的参数个数
        */ 
     
        /*2.取指定长度的字符串*/ 
        string = "123456789"; 
        sscanf(string, "%5s", buf1); 
        printf("2.string=%s\n", string); 
        printf("2.buf1=%s\n\n", buf1); 
        /*
        **执行结果:
        **2.buf1=12345
        */ 
     
        /*3.取到指定字符为止的字符串*/ 
        string = "123/456"; 
        sscanf(string, "%[^/]", buf1); 
        printf("3.string=%s\n", string); 
        printf("3.buf1=%s\n\n", buf1); 
        /*
        **执行结果:
        **3.buf1=123
        */ 
     
        /*4.取到指定字符集为止的字符串*/ 
        string = "123abcABC"; 
        sscanf(string, "%[^A-Z]", buf1); 
        printf("4.string=%s\n", string); 
        printf("4.buf1=%s\n\n", buf1); 
        /*
        **执行结果:
        **4.buf1=123abc
        */ 
     
        /*5.取仅包含指定字符集的字符串*/ 
        string = "0123abcABC"; 
        sscanf(string, "%[0-9]%[a-z]%[A-Z]", buf1, buf2, buf3); 
        printf("5.string=%s\n", string); 
        printf("5.buf1=%s, buf2=%s, buf3=%s\n\n", buf1, buf2, buf3); 
        /*
        **执行结果:
        **5.buf1=123
        */ 
     
        /*6.获取指定字符中间的字符串*/ 

[1] [2] 下一页

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    青少年吸烟心理探析
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    恢复使用繁体字可行性研究报告
    初中生地理读图能力培养的研究
    搞笑生日祝福
    搞笑生日祝福语
    生日祝福词
    生日祝福语大全
    WCF+EntityFramework+mysql总
    给定的 System.Uri 无法转换
    MooseFS使用问题分析总结
    UITableView 基本使用方法总
    国家级职业技能技术教育培训
    二年级下学期语文教学工作总
    大专生演讲比赛活动总结
    教务处中期工作总结
    民政部直属机关党委工作总结
    建设兵团安全生产工作总结
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |