1. 程式人生 > >C語言查缺補漏(十六)streak()的使用

C語言查缺補漏(十六)streak()的使用

忽略點十六:streak()的使用

​ 在ACM中,常常使用字串函式諸如:strlen求字串長度,strcpy字串複製,strcmp字串比較,strcat字串追加等等,但忽略了一個特別重要的函式——strtok()

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

​ 它用於將字串str用分隔符delimiters分為更短的字串。delimiters是含多個字元的字串,其中每個字元都是一個獨立的分隔符。如\n\t\n\t都是分隔符。

​ 需要注意!!strtok函式會改變源字串str,返回值指向第一個由非分隔符字元的指標的分割片段;之後每次呼叫,都要把NULL

作為第一個引數,如果呼叫成功就會返回下一個分割片段,如果已經到達str的末尾則會返回NULL

​ 具體使用如下:

char s[55] = "hello,My name is Ivan,I'm fifteen years|old";
char s1[5] = ", |";
char *p = strtok(s, s1);  //利用s1中分隔符將s分隔開
printf("%s\n", s);	//輸出hello
printf("%ld\n", strlen(s));	//輸出5,代表s只剩分隔符分隔後的第一塊
while (p != NULL) {
    printf("%s\n", p);
    //迴圈輸出每一塊
    //分別為hello,My,name,is,Ivan,I'm,fifteen,years,old
    p = strtok(NULL, s1);	//迴圈的使用方法
}

如果有寫的不對或者不全面的地方 可通過主頁的聯絡方式進行指正,謝謝!