System.PY2GB
System.PY2GB
函数原型
long System.PY2GB(int id, addr str, addr buf);
功能
根据拼音取汉字
说明
- str指向拼音字符串
- id为汉字的序号(从0开始)
- buf为存储符合条件的汉字的缓冲区
- 返回值为-1表示没有符合条件的汉字,否则:
- 返回值的低字表示符合条件的汉字数(一次最多取9个)
- 返回值的高字表示该拼音下的所有汉字数
示例
#define LEFT_KEY 0x17
#define UP_KEY 0x14
#define DOWN_KEY 0x15
void main()
{
char i, c, pinyin[10];
char s[20];
int id, sum;
long t;
pinyin[0] = 0;
i = 0;
id = 0;
sum = 0;
ClearScreen();
TextOut(2, 67, "拼", 1);
Block(1, 66, 13, 78, 2);
Refresh();
for (;;) {
c = getchar();
if (c == LEFT_KEY) {
if (i) {
pinyin[--i] = 0;
id = 0;
sum = 0;
}
} else if (c == DOWN_KEY) {
if (id + 9 < sum) id = id + 9;
} else if (c == UP_KEY) {
if (id > 9) id = id - 9;
else id = 0;
} else if (c >= 'a' && c <= 'z') {
if (i < 6) {
pinyin[i++] = c;
pinyin[i] = 0;
id = 0;
sum = 0;
}
}
Block(15, 67, 159, 79, 0);
TextOut(15, 67, pinyin, 1);
t = System.PY2GB(id, pinyin, s);
if (t != -1) {
sum = t >> 16;
TextOut(52, 67, s, 1);
}
Refresh();
}
}