【代码】 #include <stdio.h>
char *clist[] = {"啊", "芭", "擦", "搭", "蛾", "发", "噶", "哈", 0, "击", "喀", "垃", "妈", "拿", "哦", "啪", "期", "然", "撒", "塌", 0, 0, "挖", "昔", "压", "匝"}; int list[26];
#define CVT(p) (((*(p) & 0xff) << 8) + (*((p) + 1) & 0xff))
int main(void) { int i, n; char buffer[110]; char temp[110][60]; char *p, *t; int value, pos; int last_pos;
for (i = 0; i < 26; i++) { if (clist[i] == 0) list[i] = 0; else list[i] = CVT(clist[i]); //printf("[%c]%x\n", 'A' + i, list[i]); }
scanf("%d", &n); for (i = 0; i < n; i++) { fflush(stdin); gets(buffer); p = buffer; t = temp[i]; while (*p) { value = CVT(p); last_pos = -1; for (pos = 0; pos < 26; pos++) { if (value < list[pos]) break; if (list[pos] != 0) last_pos = pos; } *t++ = 'A' + last_pos; p += 2; } *t = 0; } for (i = 0; i < n; i++) puts(temp[i]); return 0; }
|