判断两个字符串是否相等

将两个字符串比较是否相等

要求:给定两个字符串s1,s2并赋值,判断两个字符串是否相等,若相等则返回0,否则返回1。

包含的引用函数

strlen(s1)取字符串的长度

方案一:使用数组表示,取两个数组的长度,k为较长数组的长度,两个数组依次比较字符串里面的内容,如果相等则j+1,比较完之后,若果j=k则返回0,若j≠k,则返回1

#include<string.h>
#include<stdio.h>
int strcmp()
{   
    char s1[] = "1244";
    char s2[] = "1234";
    int i=0,j=0,k=0;
    if(strlen(s1)>=strlen(s2))
        {
            k = strlen(s1);
        }
    else{
            k = strlen(s2);
        }
    for(i=0;i < k;i++)
    {
        if(s1[i] == s2[i])
        {
            j++;
        }
    }   
    if(j == k)
    {
        return 0;
    }
    else
    {
        return 1;
    }   
}

main()
{
    int a = 0;
    a = strcmp();
    printf("%d\n",a);
}


方案二:使用指针

判断的条件是,长度相等,并且最后一位是\0,之前全部相等。

*s1是指针对象,就是具体的值
s1是这个对象的一个内存地址
s1++就是往后取地址,每一个地址上都对应一个char类型的字符
a=strcmp(s1, s2);就是一个函数的调用,调用的时候传的是实参,实参传给形参
int strcmp (const char* s1,const char* s2) 定义方法时候括号里写的是形参

#include<string.h>
#include<stdio.h>
int strcmp (const char* s1,const char* s2)
{

    while(*s1++ == *s2++)
    {
        if(*s1=='\0' && *s2=='\0')
            return 0;
    }
    return 1;
}

main()
{
    int a;
    char s1[] = "12";//s1->a //++s1->s //*s1=s //*s1=='\0' //=char*s1 
    char s2[] = "1234"; //s2->a 

    a=strcmp(s1, s2);
    printf("%d\n",a); 
} 
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值