字符串与字符串比较

纯纯是刷完练习题然后自己整理记录,就当自己的笔记了!!
题目: 查找字符数组中字符串的位置(例如hellow  ll   3)

遇到这个问题就第一时间想到字符串的比较  

strcmp(字符串1,字符串2);

用到这个函数必需要包含头文件#include <string.h>

这个函数比较的是两个字符串的首地址,完整的函数是:

int strcmp(const char*a,const char*b);

strcmp(字符串1,字符串2)如果字符串1等于字符串2那么函数的返回值就是0,否则就是0;

明显这道题用两个字符串比较好像不太行,因为被比较和比较的字符串不一样大,如果这样比较肯定是不相等的。这个时候 需要比较字符串部分

    strcmp()         对两个字符串进行大小写敏感的比较
    strcmpi()        对两个字符串进行大小写不敏感的比较
    stricmp()        同strcmpi()
    strncmp()        对两个字符串的一部分进行大小写敏感的比较
    strnicmp()       对两个字符串的一部分进行大小写不敏感的比较
 这个是strcmp其他函数的用法!!!需要记住!!!

所以这个题就需要用到比较两个字符串一部分进行比较,如果想进行大小写区分也是可以的。

这个函数的用法:

int strncmp(字符串1,字符串2,要比较的个数)返回值跟strcmp一样。

SO

弄明白strncmp的用法这个题就迎刃而解:

#include <stdio.h>

#include<string.h>

int get(char s[],chare[])

{

        int s_length=strlen(s);

        int e_length=strlen(e);

        for(int i=0;i< s_length-e_length;i++)

                {

                if(strncmp(s+i,e,e_length)==0)

                {

                        return i+1;

                }

        }

        return -1;

}

下面的main函数各位大佬就知道怎么写了把,这里就不多说了。如果有看官不知道怎么写,下面就是man函数

int main()

{

char a[32]={0};

char b[32]={0};

printf("请输入两个字符串 \n");

scanf("%s %s",a,b);

int c=get(a,b);

if(-1==0)    /*这里建议所有的常量放在表达式左边,如果少写一个等号编译也是能通过的,结果就不对了。如果放在左边少写一个等号编译会提示有问题,这样能防呆*/

        {

        printf{"字符串不存在 \n"};

        }

        else

        {

        printf("字符串的位置是:%d",c);

        }

return 0;

}

这个就是完整的代码了,各位看官有啥更好的办法可以一起讨论一下。俺是一个刚刚踏入学习嵌入式的小辣鸡。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值