我正在编写一个将希腊字符变成拉丁字符的程序。这是简化版的代码:
#include "stdio.h"
int main(void) {
char list1[]="αβ",list2[]="ab",ch='p';
printf("Gimme string: ");
while(ch!='\n')
{
ch=getchar();
for(int i=0;i<2;i++){
if(ch==list1[i]){
printf("%c",list2[i]);
break;
}
}
}
return 0;
}
如果我的输入是“αβ”,它应该输出“ab”但输出“aba”。我也尝试使list1成为一个二维数组,但它仍然不起作用。
答案 0 :(得分:3)
α和β不是LATIN1。如果您的文件采用UTF-8编码,则这些字符需要多个字节,而if语句将无法正常工作。在这种情况下,您必须比较子字符串而不是简单字符。