溫馨提示×

怎么用c語言編寫strcmp函數(shù)

小億
124
2023-11-27 20:38:13
欄目: 編程語言

您可以按照以下步驟使用C語言編寫一個(gè)簡單的strcmp函數(shù):

  1. 包含頭文件 string.h

  2. 聲明函數(shù) int strcmp(const char *str1, const char *str2),其中 str1str2 是要比較的兩個(gè)字符串。

  3. 在函數(shù)內(nèi)部,使用循環(huán)來逐個(gè)比較兩個(gè)字符串中的字符,直到遇到不同的字符或者其中一個(gè)字符串的結(jié)束符 \0。

  4. 在循環(huán)中,比較每個(gè)字符的ASCII值大小,如果兩個(gè)字符相等,則繼續(xù)比較下一個(gè)字符。如果不相等,則返回兩個(gè)字符的ASCII值之差。

  5. 如果循環(huán)結(jié)束都沒有找到不同的字符,并且兩個(gè)字符串都已經(jīng)結(jié)束(即都遇到了 \0 結(jié)束符),則返回0,表示兩個(gè)字符串相等。

下面是一個(gè)簡單的示例代碼:

#include <stdio.h>
#include <string.h>

int strcmp(const char *str1, const char *str2) {
    while (*str1 && (*str1 == *str2)) {
        str1++;
        str2++;
    }

    return *(unsigned char *)str1 - *(unsigned char *)str2;
}

int main() {
    char str1[] = "Hello";
    char str2[] = "World";

    int result = strcmp(str1, str2);
    printf("Comparison result: %d\n", result);

    return 0;
}

在上面的示例中,我們使用自定義的strcmp函數(shù)來比較字符串"Hello"和"World"。函數(shù)返回的結(jié)果是-6,表示字符串"Hello"比字符串"World"小6個(gè)ASCII值。

0