2016-10-27 25 views
-1

我可以在sscanf()函數中使用字符指針(char *)作爲輸出字符串嗎?考慮到我不知道字符串的長度(這就是我使用指針的原因)。sscanf中的字符指針()

char *name; 
sscanf(data, "Name:%[^\t\n]", name); 
+0

指針應該指向的地方.. – Marco

+0

號'的sscanf()'要求是指向'char'指向數組的第一個字符,並且該陣列足夠大的參數持有將寫入它的任何內容。 – Peter

+1

如果使用'sscanf()',那麼在處理輸入字符串之前,您將知道輸入字符串的長度,因此輸出(參數)字符串的最大長度。 –

回答

0

是的,你可以使用char-pointer從另一個字符串中提取字符串,但是這個char-pointer應該被分配足夠的空間。

格式說明符應以一個說明符結尾(對於 字符串,這裏缺少's')。

char name[MAX_LENGTH+1]; // allocate enough characters 

sscanf(data, "%[^\t\n]s", name); 
+0

是的,謝謝。得到它了。 –

0

你可以使用。當參數是一個數組時,數組的基地址被傳遞給sscanf函數。傳遞一個指向sscanf的指針與傳遞數組名(數組基地址)一樣好。