printf Alineación en chino e inglés

Utilice cadenas formateadas para alinear el chino y el inglés. A continuación, se utiliza la codificación UTF8 para chino como ejemplo.

Hay caracteres chinos c1 y caracteres ingleses s1 en la cadena 1; hay caracteres chinos c2 y caracteres ingleses s2 en la cadena 2;

La cadena 1 contiene b1 = (3 * c1 + s1) bytes, z1 = (2 * c1 + s1) marcadores de posición, la cadena 2 contiene b2 = (3 * c2 + s2) bytes, z2 = (2 * c2 + s2) el número de marcadores de posición;

Suponiendo que z1 <z2, z = (z2-z1), b = b1 + z;

Luego printf ("% - bs |", cadena1); printf ("% - bs |", cadena1); printf ("% - s |", cadena2); printf ("% - s |", cadena 2) izquierda justificado

 

El siguiente es el caso de prueba;

#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");

}

 

 

Producción:

 

Supongo que te gusta

Origin blog.csdn.net/beebeeyoung/article/details/111570948
Recomendado
Clasificación