2008-11-08 114 views
1

使用MYSQL C API查詢結果時。結果返回爲MYSQL_ROW類型,根據MYSQL C API文檔,我可以很容易地printf(「%s」,row [0])。但是如果我想將行[0]的內容轉換爲字符串或char *呢?mysql c api row [0] to string

回答

0

您可以使用sprintf(),但您仍然需要知道行[0]中包含的字符串的長度,以便分配足夠的內存。

警告:BCS正確地指出,如果行[0]包含額外的nul字節,您的數據將被截斷。如果您知道行[0]中存儲了多少數據,則使用memcpy()可能是更好的解決方案。

+0

然而,如果你這樣做,它會停在第一個\ 0 – BCS 2008-11-08 23:20:03

+0

謝謝,我已經更新了我的答案來解決這個問題。 – 2008-11-09 18:05:00

1

%s格式只能接受char *,所以從你的描述看來,MYSQL_ROW實際上是一個char **,並且第[0]行將產生一個char *。

我不明白如何使用sprintf()(或更安全但非標準的asprintf())會有什麼好處,但如果它讓你感覺更好,你可能會考慮它。