原型:char *strsep(char **stringp, const char *delim);
功能:分解字串為一組字串。
樣本:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "root:x::0:root:/root:/bin/bash:";
char *buf;
char *token;
buf = str;
while((token = strsep(&buf, ":")) != NULL){
printf("%s\n", token);
}
return 0;
}
再一個樣本程式:
#include <stdio.h>
#include <string.h>
void main()
{
char str[]="Number=100&maxMtu=200";
char *name,*value,*next;
int i;
value=str; //使指標value 指向字串str;
for(i=0 ;i<2 ;i++)
{ // 第一次執行時
name = strsep(&value,"="); // 以"="分割字串,這時strsep函數傳回值為 "Number",即"="號之前的字串
next =value; // 這時指標value指向"="號後面的字串,即"100&maxMtu=200"
value=strsep(&next,"&"); // 這時通過"&"分割字串,傳回值為100,next指 向"maxMtu=200"
printf(" name= %s\n",name); //列印出一輪分割後name的值
printf("value= %s\n",value);
value=next;
}
}
執行結果為:
name= Number
value= 100
name= maxMtu
value= 200
c 語言 實現如下:
char *strsep(char **str, const char *delims){char *token;if (!*str) {/* No more tokens */return NULL;}token = *str;while (**str != '\0') {if (strchr(delims, **str)) {**str = '\0';(*str)++;return token;}(*str)++;}/* There is no other token */*str = NULL;return token;}