C语言分解函数strtok

C语言分解函数strtok

  • char *strtok(char *s, char *delim);

功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。返回指向下一个标记串。当没有标记串时则返回空字符NULL。

 

  • strtok函数的功能是把一个字符串由指定的分隔符分成更小的字符串。

例如:"this is a demo"用" "(空格)来分隔,就可以得到"this","is","a","demo"四个单词。

strtok的用法:

第一步:初始化

strtok("this is a demo"," ");

第二步:得到其它的子字符串

strtok(NULL," ");

每执行一次第二步就可以得到一个子字符串,直到返回NULL,表示查找结束。

实例:

#include <string.h>

#include <stdio.h>



int main () {

   char str[80] = "This is - www.runb.com - website";

   const char s[2] = "-";

   char *token;

  

   /* 获取第一个子字符串 */

   token = strtok(str, s);

   /* 继续获取其他的子字符串 */

   while( token != NULL ) {

      printf( "%s\n", token );

      token = strtok(NULL, s);

   }

   return(0);

}

输出

 This is

 www.runb.com

 website

  • 调用方式 : char *strtok(char *str1, char *str2);

说明    : strtok()函数的原型在string.h中

功能说明:函数strtok()返回字符串str1中指向一个由str2所指定的字符或者字符串的分隔符的指 针,当没有要返回的分隔符时,就返回一个空指针。

函数strtok()实际上修改了有str1指向的字符串。每次找到一个分隔符后,一个空(NULL)就被放到分隔符处,此时NULL指针指向后面的字符串。函数用这种方法来连续查找该字符串。

例子:

#include <string.h>

#include <stdio.h>



int main()

{

    char *p;

    char str[100]="This is a test ,and you can use it";

    p = strtok(str," "); // 注意,此时得到的 p为指向字符串:"This",即在第一个分隔  符前面的字符串,即每次找到一个分隔符后,一个空(NULL)就被放到分隔符处,所以此时NULL指针指向后面的字符串:"is a test ,and you can use it"。

   

    printf("%s\n",p);  // 此时显示:This

   

    do

    {

        p = strtok(NULL, ",");  // NULL 即为上面返回的指针,即字符串:

                                // "is a test ,and you can use it"。

        if(p)

            printf("|%s",p);

    }while(p);

   

    system("pause");

    return 0;

}
发布了21 篇原创文章 · 获赞 16 · 访问量 8340

猜你喜欢

转载自blog.csdn.net/rentan0930/article/details/102677229
今日推荐