例如:
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;
}
程序输出为
这个词不在句子中
这个词出现在这个句子中