C - g_strdup_printf中不需要的换行符或空符号



当使用data = g_strdup_printf("%.*s", len, buf) guint lengchar *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。

最新更新