所以我有一个具有一定字节数(或长度)的字符串。我说字节是因为字符串末尾没有 NULL 终止符。不过,我知道字符串有多长。通常,众所周知,当 you 时printf("%s", str);
,它会继续打印每个字节,直到达到 NULL 字符。我知道没有不是 NULL 终止的 C 字符串,但是我有一个奇怪的情况,我正在存储东西(不是特别是字符串)并且我不存储 NULL,而是存储“事物”的长度。
这是一个小示例:
char* str = "Hello_World"; //Let's use our imagination and pretend this doesn't have a NULL terminator after the 'd' in World
long len = 5;
//Print the first 'len' bytes (or char's) of 'str'
我知道你可以做这样的事情:
printf("%.5s", str);
但是在这种情况下,我将 5 硬编码在其中,尽管在我的情况下,5 在一个变量中。我会做这样的事情:
printf("%.(%l)s", len, str);
但我知道你不能那样做。但是让您了解我要完成的工作。