strcmp是字符串比較函數(shù),調(diào)用形式為strcmp(字符串1,字符串2);
站在用戶的角度思考問題,與客戶深入溝通,找到仙居網(wǎng)站設(shè)計(jì)與仙居網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋仙居地區(qū)。
功能:字符串1與字符串2比較,如果字符串1==字符串2,則函數(shù)值為0,1大于2,則為正整數(shù),1小于2,則為負(fù)整數(shù);
從兩個(gè)字符串的第一個(gè)字符開始逐個(gè)進(jìn)行比較(按照ascii碼
的大小進(jìn)行比較),之道出現(xiàn)不同的字符或遇到“\0”為止。例如:char*str1=hello,*str2=void;則strcmp(str1,str2)0;因?yàn)椤甴’'v';
c風(fēng)格字符串是以'\0'為結(jié)束標(biāo)志的。如果你的name[10]沒有初始化,用scanf得到前3個(gè)字符為abc,后面的是隨機(jī)的,當(dāng)你使用strcmp(name,
"abc")的時(shí)候,有可能你的name低第四個(gè)字符正好是'\0',那么此時(shí)就是兩個(gè)相同,否則就是不同。
舉個(gè)例子
如果你的name的分布是"abc\0defghi";此時(shí)你使用strlen獲取他的長(zhǎng)度將會(huì)是3,這就是c風(fēng)格字符串以'\0'結(jié)束,后面的就不考慮了,使用strcmp也是同樣的道理。
解決的辦法是你在name定義的時(shí)候初始化
兩種方法
1、char
name[10]
=
{0};
2、char
name[10];
memset(name,
0,
sizeof(name));
strcmp簡(jiǎn)介:
函數(shù)原型int strcmp(const char *str1,const char *str2);
其作用為:
將str1的各個(gè)字母的ASCII碼與str2的進(jìn)行比較。
若str1str2則返回整數(shù),若str1=str2返回0,否則,返回負(fù)數(shù)。
一般這樣調(diào)用:
if(strcmp(str1,str2)==0)
當(dāng)然,這是C語言的庫(kù)函數(shù),它的代碼存儲(chǔ)在某個(gè)庫(kù)文件中。
在string.h里只是一個(gè)聲明。
我給你寫一下,大概是這樣的:
int strcmp(const char *str1,const char *str2)。