我不得不通過「新行」或「換行」字符(dec 10,十六進制0x0A)拆分網絡數據的有效載荷。 所以我試圖使用strtok()函數與我遇到幾個問題 當我想用「新行」字符做一個const char字符串。const char *中的非可見字符作爲strtok()分隔符
原:
`strtok(char * StringToSplit, const char * Delimiters)`
這使得無效的初始化:
`const char delim[] = 10;`
這給了警告有關使指針從int不投; Allthough
printf("Delim: %x", delim)
顯示()DELIM(是0xA)的正確值 應用程序崩潰中的strtok使用時。
`const char * delim = 10;`
無警告或錯誤,輸出( 「DELIM:%X」,DELIM)給了正確的值 但strtok()函數沒有工作(如我所料,雖然)。
`char delim = 10;` `(ofc strtok(..., &delim))`
這似乎做的工作,但我仍然有一個警告有關將其中一個const char PTR預計strtok()函數功能的非const字符PTR。
`char delim[] = "#";` `delim[0] = 10;`
最後這似乎沒有警告的工作。
`char tmp[] = "#";` `tmp[0] = 10;` `const char *delim = tmp;`
的問題是,這將是這樣一個不可見的字符傳遞給的strtok()函數的最簡單,最優雅的方式? 對我來說,這感覺就像這只是代碼。