C语言中的字符串分割函数

发布于:2020-03-26 20:49:37

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

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

注:第一次调用strtok函数时,这个函数将忽略间距分隔符并返回指向在strToken字符串找到的第一个符

号的指针,该符号后以NULL字符结尾.通过调用一系列的strtok函数,更多的符号将从strToken字符串中分

离出来.每次调用strtok函数时,都将通过在找到的符号后插入一个NULL字符来修改strToken字符串.为了

读取strToken中的下一个符号,调用strtok函数时strToken参数为NULL,这会引发strtok函数在已修改过

的strToken字符串查找下一个符号.

复制代码

#include <stdio.h>#include<string.h>int main()
{  char str[] = "mv a.c b.c";  char *p; 
  p = strtok(str, " ");  while(p)
  {  
    printf("%s\n", p);  
    p = strtok(NULL, " ");  
  }  return 0;
}

复制代码

在linux2.6.29以后的版本中,strtok被strsep代替了。

具体示例如下:

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

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

注:第一次调用strtok函数时,这个函数将忽略间距分隔符并返回指向在strToken字符串找到的第一个符

号的指针,该符号后以NULL字符结尾.通过调用一系列的strtok函数,更多的符号将从strToken字符串中分

离出来.每次调用strtok函数时,都将通过在找到的符号后插入一个NULL字符来修改strToken字符串.为了

读取strToken中的下一个符号,调用strtok函数时strToken参数为NULL,这会引发strtok函数在已修改过

的strToken字符串查找下一个符号.

#include <stdio.h>
#include<string.h>
int main()
{
  char str[] = "mv a.c b.c";
  char *p; 
  p = strtok(str, " ");
  while(p)
  {  
    printf("%s\n", p);  
    p = strtok(NULL, " ");  
  }
  return 0;
}

在linux2.6.29以后的版本中,strtok被strsep代替了。

具体示例如下:

#include <stdio.h>
#include<string.h>
int main()
{
  char str[] = "mv a.c b.c";
  char *p;
  char *buff;
  buff=str;
  p = strsep(&buff, " ");
  while(p!=NULL)
  {
    printf("%s\n", p);
    p = strsep(&buff, " ");
  }
  return 0;
}


阅读 185+

一片空白

父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。