字符串切割函數——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;
}