gpt4 book ai didi

c - 在 C 中打印 char[] 的一部分的最简单方法

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

假设我有一个 char* str = "0123456789" 并且我想剪切第一个和最后三个字母并只打印中间部分,什么是最简单、最安全的方法在做吗?

现在是诀窍:要剪切的部分和要打印的部分大小可变,所以我可以有一个很长的 char*,也可以有一个很小的 ​​char*。

最佳答案

你可以使用printf(),和一个特殊的格式字符串:

char *str = "0123456789";
printf("%.6s\n", str + 1);

%s 转换说明符中的精度指定要打印的最大字符数。您也可以使用变量在运行时指定精度:

int length = 6;
char *str = "0123456789";
printf("%.*s\n", length, str + 1);

在这个例子中,*用于指示下一个参数(length)将包含%s转换的精度,对应的参数必须是int.

可以像我上面那样使用指针算法来指定起始位置。

[编辑]

还有一点,如果你的字符串比你的精度说明符短,将打印较少的字符,例如:

int length = 10;
char *str = "0123456789";
printf("%.*s\n", length, str + 5);

将打印“56789”。如果您总是想打印一定数量的字符,请同时指定最小字段宽度和精度:

printf("%10.10s\n", str + 5);

printf("%*.*s\n", length, length, str + 5);

将打印:

"     56789"

您可以使用减号来左对齐字段中的输出:

printf("%-10.10s\n", str + 5);

最后,最小字段宽度和精度可以不同,即

printf("%8.5s\n", str);

将在 8 个字符的字段中右对齐最多打印 5 个字符。

关于c - 在 C 中打印 char[] 的一部分的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256218/

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