1. c語言中判斷兩個字元串是否相同的方法
C語言提供了幾個標准庫函數,可以比較兩個字元串是否相同。以下是用strcmp()函數比較字元串的一個例子:
#include <stdio. h>
#include <string. h>
void main (void);
void 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. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}
上例的列印輸出如下所示:
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」。
2. c語言中怎樣判斷兩字元相等
通過==方式進行判斷,==是比較,可以比較字元,數字值等等。
舉例:
chars1='c';//定義一個字元變數s1,內容是c
chars2='d';//定義一個字元變數s2,內容是d
if(s1==s2){//通過==判斷是否相同
//相等
}
3. C語言怎麼比較兩個字元串相等
比較字元可以直接使用==比較操作符,如:
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個字元開始的內容
4. C語言如何比較兩個【字元】或者【字元串】是否相等迷糊了,求解答
比較字元可以直接使用==比較操作符,如:
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);
5. C++中如何判斷兩個字元串是否相等
C語言中比較兩個字元串是否相等的方法是使用strcmp函數。
它的形式是:strcmp(str1, str2) == 0(成立則兩個字元串相等),它需要在編譯器開頭加上#include<string.h>頭文件。它的作用是接受兩個參數,並用前者去減後者。如果為0就是相等。如果負數,前者在ASCLL表的代碼比後者小。舉例:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[] = "123456";
char str2[] = "123456";
if (strcmp(str1, str2) == 0) //這一步開始比較兩個字元串是否相等。
printf("這兩個字元串相等.");
else printf("這兩個字元串不相等");
return 0;
}
輸出結果為:
(5)c語言字元串比較是否相等擴展閱讀:
一、函數的實現原理:向strcmp()函數中傳入兩個字元串(記為str1,str2).傳入之後,通過把str1的各字母的ASCII碼值和str2的各字母的ASCII碼值進行比較。若str1>str2則返回正數,若str1=str2則返回0,否則,則返回負數。
二、函數使用規則:
當s1<s2時,返回為負數;當s1==s2時,返回值= 0;當s1>s2時,返回正數。即:兩個字元串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇'