您可以按照以下步驟使用C語言編寫一個簡單的strcmp函數:
包含頭文件 string.h
。
聲明函數 int strcmp(const char *str1, const char *str2)
,其中 str1
和 str2
是要比較的兩個字符串。
在函數內部,使用循環來逐個比較兩個字符串中的字符,直到遇到不同的字符或者其中一個字符串的結束符 \0
。
在循環中,比較每個字符的ASCII值大小,如果兩個字符相等,則繼續比較下一個字符。如果不相等,則返回兩個字符的ASCII值之差。
如果循環結束都沒有找到不同的字符,并且兩個字符串都已經結束(即都遇到了 \0
結束符),則返回0,表示兩個字符串相等。
下面是一個簡單的示例代碼:
#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函數來比較字符串"Hello"和"World"。函數返回的結果是-6,表示字符串"Hello"比字符串"World"小6個ASCII值。