1樓:網友
c語言提供了幾個標準庫函式,可以比較兩個字串是否相同。以下是用strcmp()函式比較字串的乙個例子:
#include
#include
void main (void);
void main(void)
上例的列印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
strcmp()函式有兩個引數,即要比較的兩個字串。strcmp()函式對兩個字串進行大小寫敏感的(case-sensitive)和字典式的(lexicographic)比較,並返回下列值之一:
返 回 值 意 義。
0 第乙個字串小於第二個字串。
0 兩個字串相等 ·
0 第乙個字串大於第二個字串。
在上例中,當比較str_1(即「abc」)和str_2(即「abc」)時,strcmp()函式的返回值為0。然而,當比較str_1(即"abc")和str_3(即"abc")時,strcmp()函式返回乙個大於0的值,因為按ascii順序字串「abc」小於「abc」。
strcmp()函式有許多變體,它們的基本功能是相同的,都是比較兩個字串,但其它地方稍有差別。下表列出了c語言提供的與strcmp()函式類似的一些函式:
函 數 名 作 用。
strcmp() 對兩個字串進行大小寫敏感的比較。
strcmpi() 對兩個字串進行大小寫不敏感的比較。
stricmp() 同strcmpi()
strncmp() 對兩個字串的一部分進行大小寫敏感的比較。
strnicmp() 對兩個字串的一部分進行大小寫不敏感的比較。
在前面的例子中,如果用strcmpi()函式代替strcmp()函式,則程式將認為字串「abc」等於「abc」。
c語言如何比較兩個【字元】或者【字串】是否相等?迷糊了,求解答
2樓:網友
比較字元可以直接使用==比較操作符,如:
char c1='a',c2='b';
if(c1==c2) printf("%c is same as %c.",c1,c2);
else printf("%c is different to %c",c1,c2);
若是字串,則需要使用字串函式了,strcmp
char s1="abc",s2="xyz";
if(strcmp(s1,s2)==0) printf("%s is same as %s.",s1,s2);
也可以忽略大小寫來比較,使用函式stricmp 中間的i意思是ignore case sensitive
還可以指定長度比較,strncmp,如:
char s1="abc",s2="abcdefg";
if(strncmp(s1,s2,3)==0) printf("first 3 characters are same");
若不是從開頭位置開始比較,如:
char s1="abc",s2="xyzabc"
if(strncmp(s1,&s2[3],3)==0) 就是比較s1和s2的第3個字元開始的內容。
3樓:網友
字元直接用c1==c2就可以比較了,字串用strcmp(c1,c2)來比較,等於0就是相等。
4樓:小周喜歡熬夜
1、字串比較函式的函式原型為int strcmp(const char str1[ ]const char str2[ ]
2、呼叫字串比較函式時,該函式會對字串str1和str2裡的每個字元按照字元的ascii碼大小從左到右逐個進行比較,若遇到不同的字元或者遇到字串結束符'\0'時,則停止比較;若所有比較的字元都相同,則str1與str2相等,否則根據第一次出現的不同字元,並根據字元的ascii碼值判定出比較結果。
3、呼叫字串比較函式時,傳遞給形參str1、str2的實參,既可以是字元陣列名,也可以是字串常量。
4、呼叫字串比較函式時,若函式返回值為正數,則str1>str2;若函式返回值負數,則str1 5樓:網友 先強制轉換格式 然後比較。 6樓:噯爾 c語言中用strcmp函式比較字元和字串是否相等。 strcmp函式功能是比較兩個字串的大小,返回比較的結果。 函式形式:strcmp(str1,str2)引數說明:str1,str2可以是字串常量或變數。 結果說明:返回值小於0,說明str1小於str2。 返回值等於0,說明str1與str2相等。 返回值大於0,s說明str1大於str2。 7樓:樂意丶 有一種遞迴的判斷,判斷字串是否相等的遞迴定義如下: 如果都是空串,則相等。 否則,如果乙個是空串,另乙個不是空串,則不相等。 否則,此時串相等需滿足兩個串的第乙個字元相等,並且還要滿足兩個串除去第乙個字元後剩餘的串也相等,兩個串才相等,否則就不相等。 設t和s都是串,t[index]表示某個串t的字元,如t=「123456」,則t[0] = '1' **如下:bool isequal(const char *s,const char *t) 判斷給定的兩個字串是否相同。 if(!s &&t)//如果都是空串,則相同。 return true; else if(!s&&t ||t&&s)//一者為空,另一者不空,則不相同。 return false; 否則判斷第乙個字元和除去第乙個。 字元後剩餘的字串是否相同。 剩餘的字串的引數要對好,s+1是字串指標,同原來要一樣。 這個嘛效率勉勉強強,事實上可以用迴圈來判斷的,額嘛覺得太麻煩,留給樓主或其他人去想好了。 j**a比較兩個字串是否相等用什麼 8樓:藤雁桓庚 用strcmp阿,不管長度是。 抄否相等都能用。 原型:extern intstrcmp(const chars1,const chars2); 用法:#include 功能:比較字串s1和s2。 一般形式:strcmp(字串1,字串2)說明:當s1 s2時,返回值》0 即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。 9樓:匿名使用者 字串比較比較特殊,都是使用,這是繼承object的方法,是重寫了的,有api嗎?上面講的很詳細。 10樓:匿名使用者 使用bai 方法。zhi例dao如專:屬。 c語言中判斷兩個字串是否相同的方法 11樓:匿名使用者 兩個字串相同的定義是:1.它們的每個位置對應的字元相同 2.字串的長度相同。 二者缺一不可。 c語言 比較兩個字元是否一樣 12樓:中華城不倒翁 #include int f(char x,char y) main() f函式的功能就是判斷兩個字元是否相等的函式塊。可以移植。 13樓:網友 自己寫個程式,兩個字元直接相減 ,==0則相同!=0即不同。 c語言中如何判斷兩個字串相等 14樓:大野瘦子 可以使用庫函式strcmp判斷,具體如下: strcmp是c語言比較字串的庫函式,形式為int strcmp(char *a, char *b); 該函式會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。 所以,要判斷字串相等,可以使用。 關於上述strcmp()函式比較字串的例子。 #include #include int main(void) char str_1 = "abc"; char str_2 = "abc"; char str_3 = "abc"; if (strcmp(str_1, str_2) == 0) printf("str_1 is equal to str_2. "); elseprintf("str_1 is not equal to str_2. "); if (strcmp(str_1, str_3) == 0) printf("str_1 is equal to str_3."); elseprintf("str_1 is not equal to str_3."); return 0; 15樓:網友 c語言中如何判斷兩個字串相等使用strcmp函式。 strcmp原型:int strcmp( char *s1,char * s2) 功能比較s1和s2的大小。 當s1當s1=s2時,返回值= 0 當s1>s2時,返回正數。 #include #include int main() char s1[20],s2[20]; gets(s1); gets(s2); if(strcmp(s1,s2)>0) printf("s1>s2"); else if(strcmp(s1,s2)==0) printf("s1>s2"); else printf("s1 16樓:網友 可以使用庫函式strcmp比較。 strcmp是c語言比較字串的庫函式。形式為int strcmp(char *a, char *b); 該函式會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1. 所以,要判斷字串相等,可以使用。 if(strcmp(string1, string2) == 0)如果返回為0,則相等,否則不等。 17樓:網友 程式例項如下: #include #include void main (void); void main(void) 上例的列印輸出如下所示: str_1 is equal to str_2. str_1 is not equal to str_3. 18樓:網友 #include char s1[10],s2[10]; .if(strcmp(s1,s2)==0)printf("兩字串相等"); 標頭檔案中就有比較函式,可以用來比較是否相等。 19樓:世界第一卓吹 說那多如果兩邊對稱的,用strcmp也不行呀,看好需求,一堆bug 不可以用關係運算子對字元陣列中的字串進行比較。可以用關係運算子對字元進行操作,卻不能對字串進行操作。在c語言中有以下關係運算子 1 小於 2 小於或等於 3 大於 4 大於或等於 5 等於 6 不等於 關係運算子都是雙目運算子,其結合性均為左結合。關係運算子的優先順序低於算術運算子,高於賦值運算子。... 1.字串連線函式 strcat 原型 char strcat char str1,const char str2 2.字串查詢函式 strchr 原型 char strchr const char str1,const char str2 3.字串比較函式 strcmp 原型 int strcmp ... c語言中,賦值 與 賦初值 又叫初始化 是不一樣的。在定義變數的同時賦值,叫賦初值,而定義後賦值就是普通的賦值了。你說的 不能用賦值語句將一字串常量或字元陣列直接賦值給一個字元陣列 這句話是說普通賦值的情況,也就是,不能定義一個字元陣列以後,再給他直接賦值。而 char s 12345 這個語句,是...C語言字串比較是否可以直接用關係運算子
跪求c語言字串處理函式,跪求 c語言字串 7個處理函式
C語言字串陣列問題