C語言中的字符串分割函數


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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM