printf中国語と英語の配置

書式設定された文字列を使用して、中国語と英語を揃えます。以下では、例として中国語の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");

}

 

 

出力:

 

おすすめ

転載: blog.csdn.net/beebeeyoung/article/details/111570948