看板 C_and_CPP 關於我們 聯絡資訊
關於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:strtok.c source code : http://fxr.googlebit.com/source/ 09/06 16:14
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