Big5full

程式 1012-4.c 1012-4.exe

#include <stdio.h>

#define BYTE unsigned char

int main() {
char s[] = "Hello!你好!big5."; // Hello!你好!big5。
char e[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!.";
char ebig[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!。";
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 {
char *ptr = strchr(e, s[i]);
if (ptr != NULL) {
int pos = 2*(ptr-e);
printf("%d:%c%c ", i, ebig[pos], ebig[pos+1]);
} 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:。

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