• C语言练习之 字符串 strspn


      今天看了一下c语言经典著作《C和指针》,第九章讲到了strspn函数,因为看的是中文版,

    语言描述有点出入,特别是书中的例子没能够看懂,笔者于是在网上一通找资源,网上是这样

    描述的:

    size_t strspn(const char *str1, const char *str2)

    该函数返回 str1 中第一个不在字符串 str2 中出现的字符下标。

    仍然有些抽象,于是根据网上的例子测试了一下:
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
       int len;
       const char str1[] = "ABCDEFG019874";
       const char str2[] = "ABCD";
    
       len = strspn(str1, str2);
    
       printf("初始段匹配长度 %d
    ", len );
       
       return(0);
    }
    View Code

      测试结果为4,有了上述的例子,笔者将《C和指针》书中的例子转换成了代码:

    #include <stdio.h>
    #include<string.h>
    
    
    #define TRUE 1
    #define FALSE 0
    
    char buffer[] = "25,142,330,simth,J,239-4123";
    //char buffer[] = "25,142,330";
    
    int main(int argc, char *argv) {
    
        int len1 = strspn(buffer, " 0123456789");
        int len2 = strspn(buffer,",0123456789");
        
        printf("buffer=%s
    ",buffer);
        printf("len1=%d
    ",len1);
        printf("len2=%d
    ",len2);
    
        /*int len;
        const char str1[] = "12-CDEFG019874";
        const char str2[] = "ABCD";
    
        len = strspn(str1, "CDAB123");
    
        printf("初始段匹配长度 %d
    ", len);*/
    
    }

      根据测试的结果,这个函数说白了就是统计源字符串中和目标字符串中匹配的字符个数

    于是第一段中只有“25”,所以显示为len1=2;第二段中有“25,142,330”,所以统计结果是11。

    因此在vs2015运行结果:

  • 相关阅读:
    Asp.Net页面导入和导出到EXCEL
    ASP.NET打包安装的制作方法
    asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
    aspx页面Repeater嵌套Repeater
    JAVASCRIPT校验大全
    SQL语句导入导出大全
    从DataView中生成Excel报表的方案
    用ajax实现dropdownlist多级联动实例
    ASP.NET结合存储过程写的通用搜索分页程序
    C#程序调用外部程序
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/11311555.html
Copyright © 2020-2023  润新知