如何检查C上的句子中是否有单词

例如:
str="“我有个会议”;
word="会见;
应该给0,因为没有这样的词

我尝试了strstr(str,word),但它检查子字符串,所以本例中给出1

我假设单词是由空白字符分隔的字符序列

您可以使用函数strstrstr,但还需要检查找到的子字符串前后是否有空格,或者返回的指针是否指向句子的开头,或者找到的子字符串是否构成句子的结尾

下面是一个演示程序,演示如何定义这样的函数

#包括<标准h>
#包括<字符串.h>
#包括<ctype.h>
字符*表示单词(常量字符*句子,常量字符*单词)
{
const char*p=NULL;
尺寸n=strlen(字);
如果(n!=0)
{
p=句子;
while((p=strstr(p,word))!=NULL)
{
如果((p==句子| |为空((无符号字符)p[-1]))&
(p[n]='\0'| |为空((无符号字符)p[n]))
{
打破
}
其他的
{
p+=n;
}
}
}
返回(char*)p;
}
内部主(空)
{
char*p=出席(“我有个会议”,“见面”);
如果(p)
{
放置(“句子中出现了单词”);
}
其他的
{
puts(句子中不存在单词);
}
p=是“我每天都和你见面”吗;
如果(p)
{
放置(“句子中出现了单词”);
}
其他的
{
puts(句子中不存在单词);
}
返回0;
}

程序输出为

这个词不在句子中
这个词出现在这个句子中

发表评论