我試圖解析以下字符串:字符串解析基於轉義字符
"USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_8GB&REV_1100\00H8096XQ9UW1BQ5&0:JetFlash Transcend 8GB USB Device"
基於'\'
(人物)
習題1:但這個人物被視爲轉義字符
問題2:\0
在字符串的中間被認爲是字符串的結尾。
我嘗試了很多方法。
(i)我試圖用替換另一個字符,如'$'
,並試圖用sscanf()
解析,但它不起作用。
你能提供一些建議嗎?
#include <string.h>
#include <stdio.h>
int main()
{
char str[80] = "This is \www.tutorialspoint.com \website";
const char s[2] = "\\";
char *token;
/* get the first token */
token = strtok(str, s);
/* walk through other tokens */
while(token != NULL)
{
printf(" %s\n", token);
token = strtok(NULL, s);
}
return(0);
}
使用[strtok](http://pubs.opengroup.org/onlinepubs/009695299/functions/strtok.html)而不是'sscanf' –
反斜槓只是* literal *字符串中的轉義字符,即字符串從字面上寫在源代碼中。從輸入(用戶,文件,網絡)中讀取的字符串不會*反斜槓作爲「轉義」字符。 –
它是*值*零(ASCII代碼爲零的字符,又名*文字*字符''\ 0''),它是一個字符串終止符。在一個字符串中,字符序列「'\'」後跟「0」不是字符串終結符。 –