您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關在c語言中strcmp是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
strcmp在c語言中的意思是string compare的縮寫,用于比較兩個字符串并根據比較結果返回整數,基本形式為strcmp(str1,str2),若【str1=str2】,則返回零,若【str1<str2】,則返回負數。
strcmp在c語言中的意思是:
strcmp
函數是string compare(字符串比較)的縮寫,用于比較兩個字符串并根據比較結果返回整數。基本形式為strcmp(str1,str2)
,若str1=str2,則返回零;若str1<str2,則返回負數;若str1>str2,則返回正數。
當s1<s2時,返回為負數;
當s1=s2時,返回值= 0;
當s1>s2時,返回正數。
即:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇'\0'為止。如:
1."A"<"B"
2."A"<"AB"
3."Apple"<"Banana"
4."A"<"a"
5."compare"<"computer"
特別注意:strcmp(const char *s1,const char * s2)
這里面只能比較字符串,即可用于比較兩個字符串常量,或比較數組和字符串常量,不能比較數字等其他形式的參數。
ANSI標準規定,返回值為正數,負數,0 。而確切數值是依賴不同的C實現的。
當兩個字符串不相等時,C標準沒有規定返回值會是1 或 -1,只規定了正數和負數。
有些會把兩個字符的ASCII碼之差作為比較結果由函數值返回。但無論如何不能以此條依據作為程序中的流程邏輯。
代碼:
#include <string.h> #include <memcopy.h> #undef strcmp int strcmp(p1,p2) { const char *p1; const char *p2; register const unsignedchar *s1=(const unsignedchar*)p1; register const unsignedchar *s2=(const unsignedchar*)p2; unsigned reg_charc1,c2; do { c1=(unsigned char)*s1++; c2=(unsigned char)*s2++; if(c1=='\0') returnc1-c2; } while(c1==c2); return c1-c2; } libc_hidden_builtin_def(strcmp) //以上代碼是K&R C規范的,ASCI C的在下面 /*strcmp function*/ #include <string.h> int(strap)(const char *sl,const char *s2) { /*compare unsigned char sl[],s2[]*/ for(;*sl==*s2;++sl,++s2) if(*sl=='\0') return(0); return((*(unsignedchar*)sl<*(unsignedchar*)s2)?-1:+1); }
關于在c語言中strcmp是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。