• 标准C中字符串分割方法


    ◆ 使用strtok函数分割。

    原型:char *strtok(char *s, char *delim);
    strtok在s中查找包含在delim中的字符并用NULL('')来替换,直到找遍整个字符串。 
    功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
    说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
               strtok在s中查找包含在delim中的字符并用NULL('')来替换,直到找遍整个字符串。
    返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
               所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

     使用例:

    #include <stdio.h>
    #include <string.h>
    
    
    int main(int argc,char **argv)
    #include <stdio.h>
    #include <string.h>
    
    
    int main(int argc,char **argv)
    {
    
    
        char * buf1="aaa, ,a, ,,,bbb-c,,,ee|abc";
    
        /* Establish string and get the first token: */
        char* token = strtok( buf1, ",-|");
        while( token != NULL )
        {
            /* While there are tokens in "string" */
            printf( "%s ", token );
            /* Get next token: */
            token = strtok( NULL, ",-|");
        }
        return 0;
    
    }

    OUT 值: 
    aaa
    a
    bbb
    c
    ee
    abc

    ◆ 使用strstr函数分割。

    原型:extern char *strstr(char *haystack, char *needle);
            
     用法:#include <string.h>
      
     功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
      
     说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

    使用例:


    #include <stdio.h>
    #include <string.h>
    
    int main(int argc,char **argv)
    {
    char *haystack="aaa||a||bbb||c||ee||";
    char *needle="||";
    char* buf = strstr( haystack, needle);
    while( buf != NULL )
    {
        buf[0]='';
        printf( "%s
     ", haystack);
        haystack = buf + strlen(needle);
        /* Get next token: */
        buf = strstr( haystack, needle);
    }
       return 0;
    }

     OUT 值: 
    aaa
     a
     bbb
     c
     ee

     strtok比较适合多个字符作分隔符的场合,而strstr适合用字符串作分隔符的场合

  • 相关阅读:
    Spring面试题目
    20个非常有用的Java程序片段
    第一个前台页面----xflow的页面
    java中io对文件操作的简单介绍
    java的两种异常runtimeException和checkedException
    jquery的校验规则的方法
    json对象的简单介绍
    http的状态码(中英文)
    eclipse的调试方法的简单介绍
    软件测试人员需要精通的开发语言(3)--- Linux
  • 原文地址:https://www.cnblogs.com/RodYang/p/3313790.html
Copyright © 2020-2023  润新知