有沒有一種方法,使下一次調用strtok()
重複當前的回報?在進行下一步調用strtok(NULL)重複當前一個
要在某種意義上將其推回至strtok(NULL,)
堆棧?
我在遞歸中,通過幾個級別的長開關情況,其中一個特殊情況下,使我需要在現在之前做額外的事情,所以我做他們,然後遞歸。問題是我需要的時候遞歸調用strtok(NULL,"delim")
我可以圍繞這一計劃,但再次推送至strtok(NULL,"delim")
回電流返回堆棧上,使得遞歸得到它它不是簡單的或可讀的,如果我可以un-strtok()一次。
這裏是我的意思一個簡單的例子。 聯合國的strtok()
/* UN-strtok example */
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="- This, a sample string.";
char tok[] =" ,.-";
char * pch;
int i=0;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,tok);
while (pch != NULL)
{
printf ("%s\n",pch);
if (i==1) {
//un_strtok(NULL,tok);
}
i++;
pch = strtok (NULL, tok);
}
return 0;
}
它會返回此:
Splitting string "- This, a sample string." into tokens:
This
a
sample
string
-Done-
如果un_strtok()的工作,將給予:
Splitting string "- This, a sample string." into tokens:
This
a
a
sample
string
-Done-
嗯,我有一個工作的解決方案,但我只寫了兩個答案,他們得到了0票,我不再被允許寫答案。當我可以再次回答問題時,我會發布它。 – user1488660