假设我有以下内容:
char* string = "Hello, how are you?";
是否可以只打印出这个字符串的最后 5 个字节?仅前 5 个字节怎么样? printf
是否有一些允许这样做的变体?
最佳答案
Is it possible to print out only the last 5 bytes of this string?
是的,只需传递一个指向倒数第五个字符的指针。您可以通过 string + strlen(string) - 5
来确定。
What about the first 5 bytes only?
使用精度说明符:%.5s
#include <stdio.h>
#include <string.h>
char* string = "Hello, how are you?";
int main() {
/* print at most the first five characters (safe to use on short strings) */
printf("(%.5s)\n", string);
/* print last five characters (dangerous on short strings) */
printf("(%s)\n", string + strlen(string) - 5);
int n = 3;
/* print at most first three characters (safe) */
printf("(%.*s)\n", n, string);
/* print last three characters (dangerous on short strings) */
printf("(%s)\n", string + strlen(string) - n);
return 0;
}
关于c - 是否可以仅打印出 C 字符串的特定部分,而不制作单独的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780809/