[英]Strsep and iCalendar parsing in C
我在用C解析一個簡單的iCalendar文件時遇到麻煩。
char * description, * identifier, *tofree;
tofree = description = strdup(string);
identifier = strsep(&description, ":");
printf("{%s}\n", identifier);
printf("[%s]\n", description);
free(tofree);
字符串將是我剛從文件中讀取的行,例如:BEGIN:VCALENDAR運行該程序時,得到以下輸出:
{BEGIN}
]VCALENDAR
有人可以幫我確定造成此問題的原因嗎? 輸出應該顯示“ [VCALENDAR]”,我不確定為什么會這樣。
輸入數據以回車符\\r
結尾。 您的代碼輸出:
[VCALENDAR\r]\n
然后回車將光標放在行的開頭,因此]
覆蓋您的[
。
最好在掃描之前刪除結尾的行。 否則,請在提供給strsep()
的分隔符中包含\\r
和\\n
,但是您必須第二次使用strsep()
才能獲取VCALENDAR
令牌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.