重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
#includelt;stdio.hgt;
網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了萍鄉免費建站歡迎大家使用!
#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(*agt;*b)
{
return 0;
}
else if(*alt;*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("agt;b\n");
}
else if(1==net2)
{
printf("alt;b\n");
}
else
{
printf("a=b\n");
}
return 0;
}
擴展資料:
一、return在函數中的作用
我們如果將函數看做一個加工廠,參數就是我們向加工廠投入的原料,具體的函數功能實際上就是加工的過程,而return語句代表返回值,就是加工廠在實現加工之后給“投資人”的成品。
二、return語句的特點
1、在函數當中,遇到return語句之后就意味著函數運行的結束,在此之后的代碼是不運行的。
2、它不支持任何運算也沒有任何內建方法,和任何其他的數據類型比較是否相等時永遠返回false,也可以將None賦值給任何變量。
3、執行到return語句時,會退出函數,return之后的語句不再執行。但將return語句放在try語句塊中,是個例外。
三、return的默認值:return函數默認的返回值為undefined。
代碼如下:
#include?stdio.h
#include?stdlib.h
int?max(int?a,?int?b)?
{
return?a??b???a?:?b;
}
int?main()
{
int?i,?m,?n;
scanf("%d",?m);
for?(i?=?1;?i??8;?i++)?{
scanf("%d",?n);
m?=?max(m,?n);
}
printf("最大數:%d\n",?m);
system("pause");
return?0;
}
運行結果:
這個函數是用于比較字符串中字符值的大小的、從第一個字符開始比較,對相比較的兩個字符串的第一個字符s1、s2;
當s1s2時,返回值0
當s1s2時,返回值0
,若相等,則繼續比較。如果兩個字符串相等,則返回值為0
從左到右,依次比較字母的ASCII碼的大小,遇到不同字符或'\0'結束。
基本形式:strcmp(str1,str2)
str1=str2時,返回零;str1str2時,返回負數;str1str2時,返回正數。
比如Apple和Banana比較,先比較第一個字母A和B,A的ASCII碼是65,B的是66,所以AppleBanana。
compare和computer比較,前4個字母相同,第五個字母a和u,a的ASCII碼是97,u的是117,所以comparecomputer。
擴展資料:
特別注意:
strcmp(const char *s1,const char * s2)這里面只能比較字符串,即可用于比較兩個字符串常量,或比較數組和字符串常量,不能比較數字等其他形式的參數。
ANSI標準規定,返回值為正數,負數,0 。而確切數值是依賴不同的C實現的。
1、當兩個字符串不相等時,C標準沒有規定返回值會是1 或 -1,只規定了正數和負數。
2、有些會把兩個字符的ASCII碼之差作為比較結果由函數值返回。但無論如何不能以此條依據作為程序中的流程邏輯。
c風格字符串是以'\0'為結束標志的。如果你的name[10]沒有初始化,用scanf得到前3個字符為abc,后面的是隨機的,當你使用strcmp(name,
"abc")的時候,有可能你的name低第四個字符正好是'\0',那么此時就是兩個相同,否則就是不同。
舉個例子
如果你的name的分布是"abc\0defghi";此時你使用strlen獲取他的長度將會是3,這就是c風格字符串以'\0'結束,后面的就不考慮了,使用strcmp也是同樣的道理。
解決的辦法是你在name定義的時候初始化
兩種方法
1、char
name[10]
=
{0};
2、char
name[10];
memset(name,
0,
sizeof(name));
1、首先需要準備一個空白的c語言文件,這里是用vs2017軟件,在C語言文件中引入C語言的頭文件,新建一個max函數用來判斷大小,最后設置一個main主函數:
2、max函數的邏輯是判斷x和y兩個參數那個數大,大的就把值賦給z變量,最后返回z變量的值。主函數中將用戶輸入的數通過scanf函數傳遞給變量a、b,最后調用max函數判斷大小并輸出即可:
3、最后編譯運行,打開的提示符中,輸入兩個數,回車之后程序就會把較大的數打印出來了。以上就是用C語言比較兩個數的方法: