⑴ 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」。
⑵ 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個字元開始的內容
⑶ c語言怎麼判斷兩個字元串是否一樣
可以使用strcmp函數,其包含在string.h中。
原型:extern int strcmp(char *s1,char * s2);
用法:#include <string.h>
功能:比較字元串s1和s2
說明:當s1<s2時,返回值<0;當s1=s2時,返回值=0;當s1>s2時,返回值>0
也可以自己編寫一個函數。
#include<stdio.h>
#include<string.h>
intmain(){
char*s1A="abc",*s1B="abc";
char*s2A="abcd",*s2B="abcde";
puts("使用strcmp函數");
printf("s1A=%s、s1B=%s ",s1A,s1B);
if(strcmp(s1A,s1B)==0)
printf("s1A與s1B相同! ");
else
printf("s1A與s1B不同! ");
putchar(' ');
printf("s2A=%s、s2B=%s ",s2A,s2B);
if(strcmp(s2A,s2B)==0)
printf("s2A與s2B相同! ");
else
printf("s2A與s2B不同! ");
putchar(' ');
puts("使用自定義strCompar函數");
printf("s1A=%s、s1B=%s ",s1A,s1B);
if(strCompar(s1A,s1B)==1)
printf("s1A與s1B相同! ");
else
printf("s1A與s1B不同! ");
putchar(' ');
printf("s2A=%s、s2B=%s ",s2A,s2B);
if(strCompar(s2A,s2B)==1)
printf("s2A與s2B相同! ");
else
printf("s2A與s2B不同! ");
putchar(' ');
return0;
}
/*兩字元串相同返回1;不同返回0*/
intstrCompar(char*s1,char*s2){
while(*s1||*s2){
if(*s1++!=*s2++)
return0;
}
return1;
}
運行結果
⑷ C語言編程:從鍵盤上輸入兩個字元串,判斷兩個字元串是否相等。
3個錯誤:
1,輸入的時候把%s之間的逗號去掉,才可以輸入2個字元串;
2,str1[j]=='\0'&&str2[j]=='\0'這個條件滿足時,證明字元串相等,應該把flag置為1;反之,應該置為0;
3,main()函數沒有指明類型,比如void
main();
⑸ C語言比較兩個字元串相等的問題,請人詳細講解
C語言字元串是一系列字元,也就是char類型排列而成的。一個字元是char類型,一系列字元如何表示?用他們的第一個字元的地址表示,因為字元串在地址上也是連續排列的。並且用\0,在物理上是一個位元組的全0位,來表示字元串結束。所以"abcde",空間上是'a'
'b'
'c'
'd'
'e'
'\0'strcmp的參數都是char*,也就是指向字元的指針,原理是從兩個指針指向的地址開始對比,直到其中一個\0為止。判斷相等與否。實現上是每個字元相減。單純的==,比較的是字元串手地址是否相等,這樣比較,不但比較不了兩個字元串相等與否,而且要想相等,還必須兩個字元串指向同一個地址。
⑹ C語言中如何比較兩個【字元】或者【字元串】是否相等
C語言中用strcmp函數比較字元和字元串是否相等。
strcmp函數功能是比較兩個字元串的大小,返回比較的結果。
函數形式:strcmp(str1,str2)
參數說明:str1,str2可以是字元串常量或變數。
結果說明:
①返回值小於0,說明str1小於str2。
②返回值等於0,說明str1與str2相等。
③返回值大於0,s說明str1大於str2。
⑺ c語言中怎樣判斷兩字元相等
通過==方式進行判斷,==是比較,可以比較字元,數字值等等。
舉例:
chars1='c';//定義一個字元變數s1,內容是c
chars2='d';//定義一個字元變數s2,內容是d
if(s1==s2){//通過==判斷是否相同
//相等
}
⑻ 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;
}
輸出結果為:
(8)c語言兩個字元串內容是否相等擴展閱讀:
一、函數的實現原理:向strcmp()函數中傳入兩個字元串(記為str1,str2).傳入之後,通過把str1的各字母的ASCII碼值和str2的各字母的ASCII碼值進行比較。若str1>str2則返回正數,若str1=str2則返回0,否則,則返回負數。
二、函數使用規則:
當s1<s2時,返回為負數;當s1==s2時,返回值= 0;當s1>s2時,返回正數。即:兩個字元串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇'