gpt4 book ai didi

c - 如何指定要在printf中打印出来的char[]的长度

转载 作者:行者123 更新时间:2023-12-01 14:03:29 24 4
gpt4 key购买 nike

在 c 中给定一个 char[],我想指定从 printf 中的某个位置开始的数组输出的长度,我怎样才能方便地做到这一点?

例如,我想打印从位置 3(索引从 0)到位置 8 的部分:

printf("%s", char_array+3..char_array+8)

我可以制作一个具有所需长度的临时 char[],但这不是很方便。或者我可以写一个子字符串函数

char* substring(const char* str, size_t begin, size_t len) {
if (str == 0 || strlen(str) == 0 || strlen(str) < begin || strlen(str) < (begin + len))
return 0;
return strndup(str + begin, len);
}

但是如果我调用

printf("%s", substring(s, 3, 5));

恐怕会有内存泄漏。

您认为最好的方法是什么?

最佳答案

#include <stdio.h>

int printmid(const char *data, size_t start, int len) {
return printf("%.*s", len, data + start);
}

int main(void) {
char data[] = "Hello, World!";
printmid(data, 3, 6);
puts("");
return 0;
}

输出

lo, Wo

关于c - 如何指定要在printf中打印出来的char[]的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772640/

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