簡體   English   中英

C中的Strsep和iCalendar解析

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM