【发布时间】:2013-10-09 08:52:38
【问题描述】:
我有一个包含字符串和长度的结构:
typedef struct string {
char* data;
size_t len;
} string_t;
这一切都很好,花花公子。但是,我希望能够使用类似printf 的函数输出这个结构的内容。 data 可能没有 nul 终止符(或者放在错误的地方),所以我不能只使用 %s。但是%.*s 说明符需要int,而我有size_t。
那么现在的问题是,如何使用printf 输出字符串?
【问题讨论】:
-
您可以将
size_t转换为int,前提是值适合... -
@KerrekSB 好吧,如果长度不适合
int,那将是一个有趣的printf调用:-)) 应该检查一下,因为它可能会溢出。 -
如果
data可能包含不可打印的字符(如空字符),则您根本不需要%s。写一个循环。