在C语言中,我使用虚拟机器人创建了一个程序,因此当您启动该程序时,它会自我介绍,并且我给它起了昵称。当用户启动程序时,它会询问用户名,并且我想编写一个代码,如果用户名与以下名称相似:Nick,Nicko,Nic,Nik或大写字母:NICK,Nicko。 Nic等。程序将向用户打招呼:“哇!我有相同的名字...”,但是当用户键入另一个与Nick相似的名字时,程序将向他打招呼,例如“ Hello(用户名)。 ..”。你能帮我么?预先感谢!
答案 0 :(得分:0)
您可以创建一个cstrign数组(类似char dictionary[size][size]
),并在其中填充要检查的单词。然后遍历它,检查输入是否与当前字符串匹配。
答案 1 :(得分:0)
其他人建议使用别名表,但是如果您打算处理任意数量的用户,那将有点麻烦。大写和小写处理相对简单;当您存储人员键入的内容时,还应存储所有内容的副本以备比较。这样,您的程序就可以像他们最初那样处理它们。您可以编写一个程序,而不是一个表,而不是编写一个表,该规则可以在字符串中接受: n代表nn,后缀可以忽略。
根据规则的数量,您可以考虑将规则作为普遍适用的规范化函数进行排序-例如,将所有ie替换为y,删除所有可忽略的后缀,等等...-在存储的副本中字符串将相同的归一化函数应用于输入,然后仅将它们而不是原始的进行比较。
当然,这里有问题,因为您不想在名称的开头应用大多数规则,并且只有将规则应用于软元音而不是硬元音时才适用。它引入了soundex算法,该算法将单词转换为语音等效词,从而使“科学”和“场景”变得远比其编辑距离可能暗示的距离。此时,您已经实现了一个拼写校正器。
您的问题陈述看似简单;在这个领域已经进行了很多研究,但是有用的打字助手什么都没有。