strstr函数和strcmp函数的区别
strstr函数
/*
c语言strstr实现文本字符查找
liangzongwen
2018-07-16
*/
#include <stdio.h>
#include <string.h>
const char *FILE_BIN_PAH="filetext.txt";
void main()
{
FILE * fOut,*fIn;
char inputchar[12]="english10",temp[256],m_szKeyWord[256];
fIn=fopen(FILE_BIN_PAH,"wb");
fwrite(inputchar,sizeof(inputchar),1,fIn);
fclose(fIn);
printf("sizeof 成功将数据保存\n");
printf("请输入你要查找的字符:\n");
scanf("%s",&m_szKeyWord);
fOut=fopen(FILE_BIN_PAH,"r");
while(fgets(temp,sizeof(temp),fOut))
{
temp[strlen(temp) -1] = '\0';
//strstr(str1,str2)用于判断字符串str2是否是str1的子串
if(strstr(temp, m_szKeyWord)!=NULL)
{
printf("找到了:%s\n",temp);
}
}
fclose(fOut);
printf("sizeof长度为:%d,strlen长度为:%d\n",sizeof(inputchar),strlen(inputchar));
}
strcmp函数
/*
c语言strcmp 实现文本字符匹配查找
liangzongwen
2018-07-16
*/
#include <stdio.h>
#include <string.h>
const char *FILE_BIN_PAH="filetext.txt";
void main()
{
FILE * fOut,*fIn;
char inputchar[14]="english10",temp[256],m_szKeyWord[256];
fIn=fopen(FILE_BIN_PAH,"wb");
fwrite(inputchar,sizeof(inputchar),1,fIn);
//注意对比
//fwrite(inputchar,strlen(inputchar),1,fIn);
fclose(fIn);
printf("sizeof 成功将数据保存\n");
printf("请输入你要查找的字符:\n");
scanf("%s",&m_szKeyWord);
fOut=fopen(FILE_BIN_PAH,"r");
while(fgets(temp,sizeof(temp),fOut))
{
temp[strlen(temp) -1] = '\0';
printf("strcmp(temp, m_szKeyWord)=%d\n",strcmp(temp, m_szKeyWord));
//strcmp (str1,str2)
if(strcmp(temp, m_szKeyWord)==0)
{
printf("找到了:%s\n",temp);
}
}
fclose(fOut);
printf("sizeof长度为:%d,strlen长度为:%d\n",sizeof(inputchar),strlen(inputchar));
}
区别比较
strstr函数只要求一个是另一个的子串,即为比较成功,如:strstr(str1,str2)用于判断字符串str2是否是str1的子串。
strcmp函数则要求两个字符串完全相同