当使用data = g_strdup_printf("%.*s", len, buf)
guint len
和gchar *buf
时,我得到的字符串似乎包含换行符或一些空格。
我知道,因为如果我将此字符串放在另一个字符串中g_strdup_printf("%s%s%s", "blah1", data, "blah2");
并以 win32 MessageBoxA()
打印 - 它将不包含blah1datainsidesblah2
而是
blah1datainsides
blah2
可能的原因是什么,我该如何解决这个问题?
重要补充:我正在使用g_io_channel_read_line
来获取这些数据,并且似乎它获取了包含换行符的数据,如果是这样,我该如何摆脱它?
要删除尾随空格,您可以使用g_strchomp。 对于前导空格,有g_strchug,对于前导和尾随g_strstrip。