在主函數(shù)里面,sizeof是數(shù)組占的空間
創(chuàng)新互聯(lián)公司是專業(yè)的站前網(wǎng)站建設(shè)公司,站前接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行站前網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
在作為參數(shù)時(shí),會(huì)被轉(zhuǎn)為指針
所以在函數(shù)里面打印的是sizeof(char*)
對(duì)于任意指針,sizeof的值都是當(dāng)前編譯器位數(shù)。你的是32位編譯器,輸出就是4
ps:4字節(jié)=32位
在C語(yǔ)言中,字符串是以字符數(shù)組方式保存的,于是字符串?dāng)?shù)組可以用二維字符數(shù)組存儲(chǔ)。
輸入時(shí),每次輸入字符串?dāng)?shù)組的一個(gè)元素(一行),根據(jù)需要,使用scanf或gets進(jìn)行輸入。
如:
char str[10][100]; //定義字符串?dāng)?shù)組,供10行,每行最多100個(gè)字節(jié)數(shù)據(jù)。
int i;
for(i = 0; i 10; i ++)
scanf("%s",str[i]);//輸入10行字符串?dāng)?shù)據(jù)。
#include?stdio.h
/*比較兩個(gè)字符串*/
/*src、dst相等?return?1*/
/*src比dst短?return?-2*/
/*src比dst長(zhǎng)?return?2*/
/*src、dst長(zhǎng)度一致但不相等?return?-1*/
int?stringCmp?(char?*src,?char?*dst)?{??
if?(strlen?(src)??strlen?(dst))
return?-2;
else?if?(strlen?(src)??strlen?(dst))
return?2;
else?{
while?(*src??*dst)?{
if?(*src?!=?*dst)
return?-1;
src++;
dst++;
}
return?1;
}
}
/*合并兩個(gè)字符串*/
void?mergeString(char*?str1,?char*?str2,?char*?merge)?{
while?(*merge++?=?*str1++);?/*復(fù)制str1并將指針移動(dòng)到字符串的末尾的下一個(gè)位置*/
merge--;?/*退到字符串的末尾*/
while?(*merge++?=?*str2++);?/*從末尾(\0)的位置開始將str2拷貝進(jìn)來(lái)*/
*merge?=?'\0';
}
int?main(void)?{
char?*str1_1="hel",*str1_2="lo",?*merge1;
char?*str2_1="ness",*str2_2="happy",?*merge2;
char?*str3_1="hi",*str3_2="hi",?*merge3;
char?*str4_1="hello",*str4_2="world",?*merge4;
puts?("第1組字符串:");
puts?(str1_1);
puts?(str1_2);
if?(stringCmp?(str1_1,?str1_2)?==?1)
puts?(str1_1);
else?if?(stringCmp?(str1_1,?str1_2)?==?-2)?{
mergeString?(str1_2,?str1_1,?merge1);
puts?(merge1);
}
else?if?(stringCmp?(str1_1,?str1_2)?==?2?||?stringCmp?(str1_1,?str1_2)?==?-1)?{
mergeString?(str1_1,?str1_2,?merge1);
puts?(merge1);
}
putchar?('\n');
puts?("======================================================");
putchar?('\n');
puts?("第2組字符串:");
puts?(str2_1);
puts?(str2_2);
if?(stringCmp?(str2_1,?str2_2)?==?1)
puts?(str2_1);
else?if?(stringCmp?(str2_1,?str2_2)?==?-2)?{
mergeString?(str2_2,?str2_1,?merge2);
puts?(merge2);
}
else?if?(stringCmp?(str2_1,?str2_2)?==?2?||?stringCmp?(str2_1,?str2_2)?==?-1)?{
mergeString?(str2_1,?str2_2,?merge2);
puts?(merge2);
}
putchar?('\n');
puts?("======================================================");
putchar?('\n');
puts?("第3組字符串:");
puts?(str3_1);
puts?(str3_2);
if?(stringCmp?(str3_1,?str3_2)?==?1)
puts?(str3_1);
else?if?(stringCmp?(str3_1,?str3_2)?==?-2)?{
mergeString?(str3_2,?str3_1,?merge3);
puts?(merge3);
}
else?if?(stringCmp?(str3_1,?str3_2)?==?2?||?stringCmp?(str3_1,?str3_2)?==?-1)?{
mergeString?(str3_1,?str3_2,?merge3);
puts?(merge3);
}
putchar?('\n');
puts?("======================================================");
putchar?('\n');
puts?("第4組字符串:");
puts?(str4_1);
puts?(str4_2);
if?(stringCmp?(str4_1,?str4_2)?==?1)
puts?(str4_1);
else?if?(stringCmp?(str4_1,?str4_2)?==?-2)?{
mergeString?(str4_2,?str4_1,?merge4);
puts?(merge4);
}
else?if?(stringCmp?(str4_1,?str4_2)?==?2?||?stringCmp?(str4_1,?str4_2)?==?-1)?{
mergeString?(str4_1,?str4_2,?merge4);
puts?(merge4);
}
putchar?('\n');
puts?("======================================================");
putchar?('\n');
getch?();?/*屏幕暫留*/
return?0;
}
運(yùn)行結(jié)果