单词纠正,如果想要匹配牛津字典中该怎么办?
样例输入
Colodo
样例输出
Canada
#include<stdio.h>
#include <string.h>
int main()
{
char str[100];
gets(str);
int len = strlen(str);
for(int i=0;i<len;i++)
{
if(str[i] == 'o')
str[i]= 'a';
if(str[i] == 'l')
{
str[i]= 'n';
continue;
}
if(str[i] == 'n')
{
str[i]= 'l';
continue;
}
if(str[i] == 'f')
{
str[i]= 'h';
continue;
}
if(str[i] == 'h')
{
str[i]= 'f';
continue;
}
}
printf("%s\n",str);
}
这是蓝桥杯的训练题,这段代码能够通过测试,但是如果要仔细考虑,就会发现有些说不通,例:a是一定会读成o,但是o也可能本身是o,比如color,如果放在这段代码运行出来就成了calar,并不是一个正确的单词;还需要考虑大小写问题,比如Ohrical,应该输出African。我是想着能够有一个字典或者在线的字典源,根据题目要求制定规则,输出字典中匹配的单词。