Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较C中if语句中的多个字符串?_C_Codeblocks_Strcmp - Fatal编程技术网

如何比较C中if语句中的多个字符串?

如何比较C中if语句中的多个字符串?,c,codeblocks,strcmp,C,Codeblocks,Strcmp,在C语言中,我创建了一个带有虚拟机器人的程序,这样当你启动这个程序时,它就会自我介绍,我给它起了个名字Nick。当用户启动程序时,它会询问用户的姓名,我想写一个代码,如果用户的姓名与姓名相似:Nick,Nicko,Nic,Nik或大写字母:Nick,Nicko。Nic等。程序会像这样问候用户:“哇!我有相同的名字…”但当用户键入与Nick不相似的另一个名字时,程序会像“你好(用户名)…”一样问候他。你能帮帮我吗?提前谢谢 您可以创建一个cstrigns数组(类似于char dictionary[

在C语言中,我创建了一个带有虚拟机器人的程序,这样当你启动这个程序时,它就会自我介绍,我给它起了个名字Nick。当用户启动程序时,它会询问用户的姓名,我想写一个代码,如果用户的姓名与姓名相似:Nick,Nicko,Nic,Nik或大写字母:Nick,Nicko。Nic等。程序会像这样问候用户:“哇!我有相同的名字…”但当用户键入与Nick不相似的另一个名字时,程序会像“你好(用户名)…”一样问候他。你能帮帮我吗?提前谢谢

您可以创建一个cstrigns数组(类似于
char dictionary[size][size]
),并用要检查的单词填充它。然后遍历它,检查输入是否与当前字符串匹配。

其他人建议使用别名表,但如果您计划处理任意数量的用户,这会有点麻烦。上下箱处理相对简单;当您存储用户键入的内容时,还应在一个案例中存储所有内容的副本,以用于比较。这样,您的程序就可以像最初那样解决这些问题。您的程序可能会将它可以接受的许多替换规则编码为一个字符串,而不是一个表:即y;n表示nn,以及可以忽略的后缀

取决于规则的数量,您可以考虑将规则排序为一个通用的规范化函数,例如,用Y替换所有IE,删除所有可忽略的后缀等。在存储的字符串副本中;对输入应用相同的规范化函数,然后只比较这些函数而不是原始函数

当然这里也有问题,因为你不想在名字的开头应用大多数规则,有些规则只适用于软元音而不是硬元音;这引入了soundex算法,该算法将单词转换为它们的语音等价物,因此“科学”和“场景”之间的距离比编辑距离所显示的距离要远。现在,您已经实现了一个拼写更正器


你的问题陈述看似简单;在这方面已经有很多研究,但有用的打字助手却远远不够。

我们很高兴您能来到这里,您应该向我们展示您的代码。一种易于维护的方法是拥有一组名称,这些名称应该以某种方式回复。循环遍历数组,将每个数组与输入进行比较,如果存在匹配项,则设置一个标志。如果非标准功能
stricmp
stracecmp
可用,则可以轻松区分大小写。例如,
char*昵称[]={“Nick”、“Nicko”、…}