printf() で印刷する文字数を指定する
次のような疑問が生じます。printf() には次のことを可能にするメカニズムはありますか?文字列から印刷する文字数を指定しますか?これを、整数の小数点以下の桁数を指定することに例えることもできます。例:
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
Solution
これを実現するには、主に 2 つのアプローチがあります。 C.
方法 1: 基本アプローチ
printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
方法 2: 多用途なアプローチ
printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
このアプローチでは、長さが printf() の int 引数として提供されます。 。形式内の '*' は、引数から長さを取得するリクエストとして解釈されます。
拡張表記
別の表記も使用できます:
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);
printf() の POSIX 仕様では、これらのメカニズムの詳細な説明が提供されています。
以上がprintf() を使用して文字列から印刷する文字数を指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。