c語言兩個字元比較
㈠ c語言中怎麼判斷兩個字元相同
不能這樣比較。
首先,'有'不是ASCII碼,它占兩個位元組。char b是ASCII碼,佔一個位元組。
你的程序中,a是一個字元串,b是一個字元,兩個類型不一樣,不能用strcmp比較。
如果你想比較,可以這樣:
#include<stdio.h>
#include<string.h>
intmain()
{
chara,b;
a='y';
b=getchar();
if(a==b)
printf("兩字都是y ");
else
printf("第二個字不是y ");
return0;
}
㈡ c語言中比較兩個字元串的大小
在C語言中比較字元串大小,可以使用庫函數strcmp,也可以自己編寫比較函數。
1、使用庫函數。
需要包含頭文件string.h。聲明為:
int strcmp(const char *s1, const char *s2);
會根據字典序比較s1和s2, 如果二者相等,則返回0;如果s1較小則返回-1;如果s1較大則返回1。
比如
strcmp("123", "123") 結果為0。
strcmp("123", "456") 結果為-1。
strcmp("456", "123") 結果為1。
2、自定義函數。
實現字元串比較的方法有很多,其基本原理為按位元組比較。
舉例如下:
intmy_strcmp(char*s1,char*s2)
{
inti;
for(i=0;s1[i]==s2[i]&&s1[i]!=0;i++);//循環比較,達到結束或者出現不相等值時退出循環。
if(s1[i]==s2[i])return0;//代表全部相等,返回0
if(s1[i]<s2[i])return-1;//s1較小,返回-1。
return1;//s1較大,返回1.
}
㈢ 編寫一個C語言函數,比較兩個字元串的大小
#include<stdio.h>
#define
N
100
int
input(char*a,char*b)//輸入兩個字元串
{
printf("Input
the
first
information:\n");
fgets(a,N,stdin);
printf("Input
the
secend
information:\n");
fgets(b,N,stdin);
}
int
my_strcmp(char*a,char*b)//比較字元串每個字元的大小
{
while((*a!='\0')&&(*b!='\0'))
{
if(*a>*b)
{
return
0;
}
else
if(*a<*b)
{
return
1;
}
else
{
a++;
b++;
}
}
if((*a=='\0')&&(*b!='\0'))//字元串b比字元串a長
{
return
1;
}
else
if((*a!='\0')&&(*b=='\0'))//字元串a比字元串b長
{
return
0;
}
else
{
return
2;
}
}
int
main()
{
char
a[N]={0};
char
b[N]={0};
int
net2=0;
input(a,b);//調用輸入函數
net2=my_strcmp(a,b);//調用比較大小函數
if(0==net2)//輸出大小
{
printf("a>b\n");
}
else
if(1==net2)
{
printf("a<b\n");
}
else
{
printf("a=b\n");
}
return
0;
}
(3)c語言兩個字元比較擴展閱讀:
一、return在函數中的作用
我們如果將函數看做一個加工廠,參數就是我們向加工廠投入的原料,具體的函數功能實際上就是加工的過程,而return語句代表返回值,就是加工廠在實現加工之後給「投資人」的成品。
二、return語句的特點
1、在函數當中,遇到return語句之後就意味著函數運行的結束,在此之後的代碼是不運行的。
2、它不支持任何運算也沒有任何內建方法,和任何其他的數據類型比較是否相等時永遠返回false,也可以將None賦值給任何變數。
3、執行到return語句時,會退出函數,return之後的語句不再執行。但將return語句放在try語句塊中,是個例外。
三、return的默認值:return函數默認的返回值為undefined。
㈣ C語言:從鍵盤輸入兩個字元串,比較它們的大小
//看清楚,這個strcmp是我編的啊!不喜歡這個名子,你可以換。
#include<stdio.h>
int strcmp(char *t,char *s)
{
int i=0;
while(t[i]==s[i]&&s[i]&&t[i]) i++;
if(s[i]=='\0'&&t[i]=='\0')
return 0;//表示相等。
else if(t[i]>s[i]) return 1;//表示第一個大於第二個。
else return -1;//表示第一個小於第二個。
}
int main()
{
char s1[81],s2[81];
gets(s1);
gets(s2);
printf("%d\n",strcmp(s1,s2));
return 0;
}
㈤ c語言中比較兩個字元串的大小,應該怎麼做
一:(這個調用了 string.h 頭函數)
#include <stdio.h>
#include <string.h>
void comparision(char a[],char b[])
{
if(strcmp(a,b)>0) printf("a[40]>b[40]");
else if(strcmp(a,b)==0) printf("a[40]=b[40]");
else printf("a[40]<b[40]");
}
main(void)
{
char a[40],b[40];
gets(a);
gets(b);
comparision(a,b);
}
2:這個是普通方法 不調用函數strcmp();
#include <stdio.h>
int comparision(char a[],char b[])
{
int t,i=0;
while(a[i]!='\0'||b[i]!='\0')
{
(a[i]==b[i]) t=0;
else if(a[i]>b[i]) t=1;
else t=-1;
if(t!=0) break;
i++;
}
return t;
}
main(void)
{
char a[40],b[40];
int k=0;
gets(a);
gets(b);
k=comparision(a,b);
if(k==1) printf("a[40]>b[40]");
else if(k==-1) printf("a[40]<b[40]");
else printf("a[40]=b[40]");
}
㈥ c語言中如何判斷兩個字元串相等
可以使用庫函數strcmp判斷,具體如下:
strcmp是C語言比較字元串的庫函數,形式為int strcmp(char *a, char *b);
該函數會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。
所以,要判斷字元串相等,可以使用。
(6)c語言兩個字元比較擴展閱讀:
關於上述strcmp()函數比較字元串的例子
#include <stdio.h>
#include <string.h>
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. ");
else
printf("str_1 is not equal to str_2. ");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3. ");
else
printf("str_1 is not equal to str_3. ");
return 0;
}
參考資料來源:字元串-網路
㈦ c語言中如何判斷兩個字元串完全相等
用字元比較函數,做個FOR循環判斷即可,
字元串比較函數strcmp
格式strcmp(a,b)=0 a=b
strcmp(a,b)<0 a<b
strcmp(a,b)>0 a>b
a,b均為字元串!
㈧ 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個字元開始的內容