Big5print

程式1012-3.c 1012-3.exe

#include <stdio.h>

#define BYTE unsigned char

int main() {
char s[] = "Hello!你好!big5.";
int i;
for (i=0; i<strlen(s); i++) {
printf("%d:%c ", i, s[i]);
}
printf("\n");
for (i=0; i<strlen(s); ) {
BYTE b=(BYTE) s[i];
if (b>=0xA1 && b<=0xF9) {
printf("%d:%c%c ", i, s[i], s[i+1]);
i+=2;
}
else {
printf("%d:%c ", i, s[i]);
i++;
}
}
}

0:H 1:e 2:l 3:l 4:o 5:! 6:?7:A 8:?9:n 10:?11:I 12:b 13:i 14:g 15:5 16:.
0:H 1:e 2:l 3:l 4:o 5:! 6:你 8:好 10:! 12:b 13:i 14:g 15:5 16:.


刪除 printf("%d:%c ", i, s[i]);
執行結果只有中文
0:H 1:e 2:l 3:l 4:o 5:! 6:?7:A 8:?9:n 10:?11:I 12:b 13:i 14:g 15:5 16:.
6:你 8:好 10:!

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License