gpt4 book ai didi

c - Printf 可变字符串长度说明符

转载 作者:太空狗 更新时间:2023-10-29 17:16:06 27 4
gpt4 key购买 nike

我有一个包含字符串和长度的结构:

typedef struct string {
char* data;
size_t len;
} string_t;

一切都很好,花花公子。但是,我希望能够使用类似于 printf 的函数输出该结构的内容。 data 可能没有 nul 终止符(或者它放在错误的位置),所以我不能只使用 %s。但是 %.*s 说明符需要一个 int,而我有一个 size_t

那么现在的问题是,如何使用printf输出字符串?

最佳答案

假设您的字符串中没有任何嵌入的 NUL 字符,您可以在将 size_t 转换为 后使用 %.*s 说明符整数:

string_t *s = ...;
printf("The string is: %.*s\n", (int)s->len, s->data);

这还假设您的字符串长度小于 INT_MAX。如果您的字符串长于 INT_MAX,那么您就会遇到其他问题(一方面,打印出 20 亿个字符将花费相当长的时间)。

关于c - Printf 可变字符串长度说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com