2

課題があり、1 つのことを行う 2 つの方法を見つけようとしていました。ここにコードがあります

#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 文字広いフィールドに印刷することでした。私の名前はクリスです。幅が 8 文字であることでこれが達成されることはわかっていますが、作成した長さ変数を使用して、以下のようなことを行うことができるかどうか疑問に思っていました。事前に名前を付けます。

printf("Hi \"%[Length]s\"\n", first);

うまくいかないことはわかっていますが、アイデアが伝わると思います。

4

3 に答える 3