字符串切割strtok()函數介紹

字符串切割函數——strtok()函數介紹

1.      函數功能介紹

strtok()函數作用於字符串,以包含在delimiters中的字符爲分界符,將s切分成一個個子串;如果s爲空值NULL,則函數保存的指針SAVE_PTR在下一次調用中將作爲起始位置

2.      函數原型

strtok()函數包含在頭文件string.h中,函數的原型如下:

char* strtok (char* str,constchar* delimiters );

3.      函數參數和返回值

①       傳入參數

從函數原型可以看出,該函數需要傳入兩個參數:一個是要分割的字符串首地址str;一個是常量分割標誌字符串的首地址delimiters。

②       函數返回值

當s中的字符查找到末尾時,返回空指針;如果未找到到delimiters內的字符,則返回當前strtok()操作的字符串的指針,下次調用時,將上次執行結束前訪問到的字符串s的位置作爲新的起始位置。

l  函數的使用

例如,我們想要實現將以下字符串按照字符’#’進行切割,並得到切割結果。

源字符串:

Anhui#Normal#University#is#a#beautiful#college#campus#with#a#long#history.

目標結果:

Anhui Normal University is a beautiful college campus with a long history.

實現代碼如下:

#include<stdio.h>
#include<string.h>
int main()
{
	char s[]="Anhui#Normal#University#is#a#beautiful#college#campus#with#a#long#history.";
	char *temp=strtok(s,"#");
	while(temp!=NULL)
	{
		printf("%s ",temp);
		temp=strtok(NULL,"#");
		//下次調用時,將上次執行結束前訪問到的字符串s的位置作爲新的起始位置,因此這裏傳入的參數str需要設置爲空。 
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章