printf() での文字列の切り捨てのカスタマイズ
クエリ:
を制御することは可能ですかprintf() を使用して文字列から出力される文字数は、整数の小数点以下の桁数を指定するのと似ていますか?
次のように考えます:
printf("ここに最初の 8 文字があります: %sn", "8 文字を超える文字列");
期待される出力: 最初の 8 文字は次のとおりです: 文字列
解決策:
このカスタマイズを実現するには、主に 2 つの方法があります:
方法 1:
printf("最初の 8 文字は次のとおりです: %.8sn" , "8 文字を超える文字列");
方法 2:
printf("最初の %d 文字は次のとおりです: %.*sn" , 8, 8, "8 文字を超える文字列");
2 番目のメソッドでは、長さを指定する整数の引数が printf() に渡されます。形式内の '*' は、printf() に付随する引数から長さを取得するよう促します。
別の表記法も存在します。
printf("最初の 8 文字は次のとおりです: %*. *sn", 8, 8, "8 文字を超える文字列");
この表記は "%8.8s" 形式に似ていますが、特に最小長と最大長の動的な指定が可能です。次のようなシナリオで役立ちます:
printf("Data: %*.*s Other info: %dn", minlen, maxlen, string, info);
printf() の POSIX 仕様これらのメカニズムについて詳しく説明します。
以上がprintf() で文字列の切り捨てをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。