作者zptdaniel (忠言本逆耳,實願君向善.)
看板C_and_CPP
標題[問題] strtok的運作(已爬文 看不懂@@)
時間Sun Sep 6 15:46:00 2009
關於strtok我已經知道它是依據自訂的符號對字串進行切割
且strtok通常的寫法是
result = strtok( str2, delims );
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, delims );
}
假設
char str2[] = "ABC*de=a*3answer"
char delims[]="*"
char *result =NULL;
那今天印出的result 分別是
ABC
de=a
3answer
我的問題來了..strtok的運作方式是否是
將ABC傳給result之後,再多傳一個null字元.(此時strtok內部指向第一個*)
然後strtok再將內部的指標(?)指向d
之後result = strtok( NULL, delims ); 就從d開始讀
是這樣嗎?
--
生死去來
棚頭傀儡
一線斷時
落落磊磊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.100.216
→ qazplm:lib/libc/string/strtok.c 09/06 16:14
→ zptdaniel:*看了樓上的網址...頭更痛了 囧 09/06 16:24
推 llama:你可以看重點...既然你都覺得從d開始讀....那就是一樓網址找 09/06 18:10
→ llama:一定有個變數會去記錄之前讀到哪個字元... 09/06 18:11
→ llama:然後就會看到 "static char *last;" 應該就是你要的~ 09/06 18:12