一、strcmp函數概述
strcmp函數(string compare)是一個高度常用的字元串比較函數,它定義在C標準庫頭文件中。該函數用於比較兩個字元串是否相等,若相等則返回0,若s1>s2則返回一個正整數,若s1<s2則返回一個負整數。它比較字元串中每個字元的位元組值(ASCII碼值)大小,直到字元串中某一字元的位元組值不等或某一字元串結束。該函數具有高效和可靠的特點,比較兩個字元串時經常使用它。下面我們從幾個方面詳細介紹該函數的使用方法。
二、strcmp函數用法詳解
1. strcmp函數的函數原型
int strcmp(const char *s1, const char *s2);
2. strcmp函數參數說明
s1和s2分別為待比較的兩個字元串,函數的返回值為整數。
3. strcmp函數返回值說明
1. 若s1和s2相等,則返回0;
2. 若s1>s2,則返回一個正整數,其中這個正整數大小組合兩個字元串中第一個不相同字元ASCII碼的差值;
3. 若s1<s2, 則返回一個負整數,這個負整數大小組合兩個字元串中第一個不相同字元ASCII碼的差值。
4. strcmp函數示例
示例1(比較兩個字元串是否相等)
#include <stdio.h> #include <string.h> int main(){ char str1[] = "hello world"; char str2[] = "hello world"; if (strcmp(str1, str2) == 0){ printf("str1和str2相等\n"); } else { printf("str1和str2不相等\n"); } return 0; }
示例2(比較兩個字元串大小)
#include <stdio.h> #include <string.h> int main(){ char str1[] = "hello world"; char str2[] = "Hello world"; int result = strcmp(str1, str2); if (result > 0){ printf("str1比str2大\n"); } else if (result < 0){ printf("str1比str2小\n"); } else { printf("str1和str2相等\n"); } return 0; }
示例3(判斷字元串是否與給定字元串開頭相同)
#include <stdio.h> #include <string.h> int main(){ char str[] = "hello world"; if (strncmp(str, "hello", 5) == 0){ printf("str以hello開頭\n"); } else { printf("str不以hello開頭\n"); } return 0; }
三、總結
strcmp函數是C語言中非常常用的字元串比較函數之一,可以用於比較兩個字元串是否相等,也可以用於比較兩個字元串的大小。需要注意的是,在對函數的返回值進行判斷時,要注意等於0的情況,因為函數在兩個字元串相等時返回的是0,這一點在代碼編寫中要特別注意。
原創文章,作者:GSWFX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351746.html