1. ホーム
  2. c++

[解決済み] printf()で出力する文字列を何文字にするか指定する方法はありますか?

2022-05-07 04:21:19

質問

文字列の何文字目をプリントアウトするかを指定する方法はありますか? int s)?

printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");

プリントしてほしい。 Here are the first 8 chars: A string

どのように解決するのですか?

基本的なやり方は

printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");

もう一つの、しばしばより便利な方法は。

printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");

ここでは、printf()の引数に長さをintで指定していますが、printf()は書式中の'*'を引数からの長さ取得要求として扱います。

表記も可能です。

printf ("Here are the first 8 chars: %*.*s\n",
        8, 8, "A string that is more than 8 chars");

これも "%8.8s" 記法に似ていますが、やはり実行時に最小と最大の長さを指定することができます - より現実的には次のようなシナリオになります。

printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info);

のPOSIX仕様です。 printf() は、これらのメカニズムを定義しています。