1. 程式人生 > >判斷兩個字串是否相等

判斷兩個字串是否相等

將兩個字串比較是否相等

要求:給定兩個字串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); }