判断两个字符串是否相等

来源:互联网 发布:腾讯股票数据接口 编辑:程序博客网 时间:2024/05/17 21:39

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

要求:给定两个字符串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); } 
原创粉丝点击