我有一个任务,我试图找出两种方法来做一件事。我这里有代码
#include <stdio.h>
int main(void)
{
char first[10];
int length;
printf("what is your first name?\n");
scanf("%s", &first);
length = strlen(first)+3;
printf("%d\n", length);
printf("Hi \"%s\"\n", first);
printf("Hi \"%20s\"\n", first);
printf("Hi \"%-20s\"\n", first);
printf("Hi \"%8s\"\n", first);
return 0;
}
整体还算简单。然而,最后的声明
printf("Hi \"%8s\"\n", first);
是我想做的不同的事情。该语句的标准是将其打印在比名称宽 3 个字符的字段中。我的名字叫 Chris,我知道 8 个字符宽可以实现这一点,但是,我想知道是否可以使用我创建的长度变量并在下面执行类似的操作,这样我就不必知道提前命名。
printf("Hi \"%[Length]s\"\n", first);
我知道这行不通,但我认为它可以传达这个想法。