本文目錄一覽:
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
說明:當s1s2時,返回值0;當s1=s2時,返回值=0;當s1s2時,返回值0
也可以自己編寫一個函數。
#include stdio.h
#include string.h
int main() {
char *s1A=”abc”,*s1B=”abc”;
char *s2A=”abcd”,*s2B=”abcde”;
puts (“使用strcmp函數”);
printf (“s1A=%s、s1B=%s\n”,s1A,s1B);
if (strcmp (s1A,s1B) == 0)
printf (“s1A與s1B相同!\n”);
else
printf (“s1A與s1B不同!\n”);
putchar(‘\n’);
printf (“s2A=%s、s2B=%s\n”,s2A,s2B);
if (strcmp (s2A,s2B) == 0)
printf (“s2A與s2B相同!\n”);
else
printf (“s2A與s2B不同!\n”);
putchar(‘\n’);
puts (“使用自定義strCompar函數”);
printf (“s1A=%s、s1B=%s\n”,s1A,s1B);
if (strCompar (s1A,s1B) == 1)
printf (“s1A與s1B相同!\n”);
else
printf (“s1A與s1B不同!\n”);
putchar(‘\n’);
printf (“s2A=%s、s2B=%s\n”,s2A,s2B);
if (strCompar (s2A,s2B) == 1)
printf (“s2A與s2B相同!\n”);
else
printf (“s2A與s2B不同!\n”);
putchar(‘\n’);
return 0;
}
/*兩字符串相同返回1;不同返回0*/
int strCompar (char *s1, char *s2) {
while (*s1||*s2) {
if (*s1++!=*s2++)
return 0;
}
return 1;
}
運行結果
C語言中判斷兩個字符串是否相同的方法
兩個字符串相同的定義是:1.它們的每個位置對應的字符相同
2.字符串的長度相同
二者缺一不可
C++中如何判斷兩個字符串是否相等?
C語言中比較兩個字符串是否相等的方法是使用strcmp函數。
它的形式是:strcmp(str1, str2) == 0(成立則兩個字符串相等),它需要在編譯器開頭加上#includestring.h頭文件。它的作用是接受兩個參數,並用前者去減後者。如果為0就是相等。如果負數,前者在ASCLL表的代碼比後者小。舉例:
#includestdio.h
#includestring.h
int main()
{
char str1[] = “123456”;
char str2[] = “123456”;
if (strcmp(str1, str2) == 0) //這一步開始比較兩個字符串是否相等。
printf(“這兩個字符串相等.”);
else printf(“這兩個字符串不相等”);
return 0;
}
輸出結果為:
擴展資料:
一、函數的實現原理:向strcmp()函數中傳入兩個字符串(記為str1,str2).傳入之後,通過把str1的各字母的ASCII碼值和str2的各字母的ASCII碼值進行比較。若str1str2則返回正數,若str1=str2則返回0,否則,則返回負數。
二、函數使用規則:
當s1s2時,返回為負數;當s1==s2時,返回值= 0;當s1s2時,返回正數。即:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇’\0’為止。如:
“A””B” “a””A” “computer””compare”
特別注意:strcmp(const char *s1,const char * s2)這裡面只能比較字符串,即可用於比較兩個字符串常量,或比較數組和字符串常量,不能比較數字等其他形式的參數。ANSI標準規定,返回值為正數,負數,0 。而確切數值是依賴不同的C實現的。
參考資料:strcmp函數-百度百科
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/280551.html