zoukankan      html  css  js  c++  java
  • 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运行结果:

  • 相关阅读:
    从程序员到主编顺利转型
    DAS、NAS、SAN区别
    网线知识全接触
    浅议DAS、NAS、SAN区别
    写辞职信要注意的五个要点
    劳动合同签订中的法律问题
    辞职了,离职手续怎么办?
    系统集成工程师知识储备
    还是关于 标记当前
    一个JSON 实例 jQuery 解析JSON数据
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/11311555.html
Copyright © 2011-2022 走看看