書式設定された文字列を使用して、中国語と英語を揃えます。以下では、例として中国語のUTF8エンコーディングを使用しています。
文字列1にはc1漢字とs1英語文字があり、文字列2にはc2漢字とs2英語文字があります。
文字列1にはb1 =(3 * c1 + s1)バイト、z1 =(2 * c1 + s1)プレースホルダー、文字列2にはb2 =(3 * c2 + s2)バイト、z2 =(2 * c2 + s2)の数値が含まれますプレースホルダーの;
z1 <z2、z =(z2-z1)、b = b1 + zと仮定します。
次に、printf( "%-bs |"、string1); printf( "%-bs |"、string1); printf( "%-s |"、string2); printf( "%-s |"、string 2)が残っています正当化
以下はテストケースです。
#include <stdio.h>
int main(int argc, char *argv[])
{
int ret = 0, i = 0, cnt = 3;
char str1[] = {"单位(km/s)"};//b1 = 12, c1 = 10
char str2[] = {"unit(千米每秒)"};//b2 = 18 , c2 = 14
for(i = 0; i < cnt; i++)
{
printf("%-16s|",str1);
}
printf("\n");
for(i = 0; i < cnt; i++)
{
printf("%s|",str2);
}
printf("\n");
}
出力: