C 找出句子中单词的出现

C 找出句子中单词的出现,c,string,C,String,我制作了一个程序,你们可以输入句子,然后输入单词。如果句子中的单词是您输入的单词,请在setnence中标记该作品。例如: input sentence My name is John. input words name Why do apple Final output My [name] is John. 这很有效。我使用strtok拆分令牌上的单词(按“”),并将它们添加到结构中。我将输入的单词存储在一个数组中。但问题是,当用户输入 “name”(开头有空格)与句子中的单词不匹配

我制作了一个程序,你们可以输入句子,然后输入单词。如果句子中的单词是您输入的单词,请在setnence中标记该作品。例如:

input sentence

My name is John.

input words
name
Why
do
apple

Final output

My [name] is John.
这很有效。我使用strtok拆分令牌上的单词(按“”),并将它们添加到结构中。我将输入的单词存储在一个数组中。但问题是,当用户输入 “name”(开头有空格)与句子中的单词不匹配,因为我将其拆分为“”,这意味着结构中没有空格

有没有办法,不使用暴力循环来检查单词是否存在于带有空格的句子中?范例

Input sentence
My name is john

words
 name
is
Final output
My[ name] [is] John.

您需要从标记中去掉所有标点和空格。如果您的输入集中有“John”,您将发现您与原始句子中的“John”不匹配

我的建议是,当你看到一个单词时,你可以修剪它(.trim()),然后删除任何不需要的字符(“,”,“-”,“)


您可能还想考虑程序是否区分大小写。< /P> <代码> fgs[()/代码>和<代码> STRSTRESE()/代码>?您应该提供一些代码,如果您不提供任何代码,我们不知道为什么您的代码不工作。你会在单词John中找到匹配项吗?我认为op需要匹配整个单词,而不仅仅是单词的子字符串。好吧,如果在name之前有两个空格,比如“name”,即使句子中只有一个空格,它也会匹配。我不确定OP是否有意这样做。这完全取决于OP对“单词”的定义。如果它只是一堆字符(包括空格),那么他就不能标记它。