strstr函数和strcmp函数的区别

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函数则要求两个字符串完全相同
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值