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: