正確的答案是5,題目選項(xiàng)有誤。
創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序設(shè)計(jì)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來(lái),已經(jīng)為上千辦公窗簾各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上千客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
首先strlen()函數(shù)返回的長(zhǎng)度是不包含'\0',
第一個(gè)字符為:a
第二個(gè)字符為:b
第三個(gè)字符為:\n (換行符)
第四個(gè)字符為:2
第五個(gè)字符為:\ (\\轉(zhuǎn)義為\)
所以答案為5。
(下圖為實(shí)際代碼演示)
擴(kuò)展內(nèi)容:
strlen()函數(shù)(C語(yǔ)言函數(shù)):
strlen所作的僅僅是一個(gè)計(jì)數(shù)器的工作,它從內(nèi)存的某個(gè)位置(可以是字符串開(kāi)頭,中間某個(gè)位置,甚至是某個(gè)不確定的內(nèi)存區(qū)域)開(kāi)始掃描,直到碰到第一個(gè)字符串結(jié)束符'\0'為止,然后返回計(jì)數(shù)器值(長(zhǎng)度不包含'\0')。
參考資料:strlen函數(shù) - 百科
在C語(yǔ)言中,輸入輸出字符串有以下兩種方式:
1 用scanf/printf輸入輸出。
scanf/printf是C語(yǔ)言的格式化輸入輸出函數(shù),可以用于輸入輸出各種基礎(chǔ)類型,字符串(char*)也在其支持范圍內(nèi)。
格式化字符為%s。
定義
char str[100];
輸入
scanf("%s",str);
輸出
printf("%s",str);
2 C語(yǔ)言還支持專門(mén)的字符串輸入輸出函數(shù):gets/puts。
gets的作用為,讀入一行輸入,并將讀到的換行符替換為字符串結(jié)束符。
puts的作用為,將字符串單行輸出,即輸出字符串內(nèi)容后,會(huì)自動(dòng)在結(jié)尾增加換行。
定義
char str[100];
輸入
gets(str);
輸出
puts(str);
#includeiostream
using namespace std;
int main()
{
int character(char *a);
char a[20];
int length;
cout"請(qǐng)輸入一個(gè)字符串:"endl;
cina;
length=character(a);
cout"字符串長(zhǎng)度為:"lengthendl;
return 0;
}
擴(kuò)展資料:
return用法:
在C++的關(guān)鍵字,它提供了終止函數(shù)執(zhí)行的一種方式。當(dāng)return語(yǔ)句提供了一個(gè)值時(shí),這個(gè)值就成為函數(shù)的返回值.
1、C
在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的經(jīng)典巨著The C programming Language 2e(《C程序設(shè)計(jì)語(yǔ)言第二版》)用的就是main()。不過(guò)在最新的C99標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:
int main(void)
int main(int argc,char*argv[])
當(dāng)然,我也可以做一點(diǎn)小小的改動(dòng)。例如:char*argv[]可以寫(xiě)成char**argv;argv和argc可以改成別的變量名(如intval和charval),不過(guò)一定要符合變量的命名規(guī)則。
如果不需要從命令行中獲取參數(shù),請(qǐng)用int main(void);否則請(qǐng)用int main(int argc,char*argv[])。
main函數(shù)的返回值類型必須是int,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。
如果main函數(shù)的最后沒(méi)有寫(xiě)return語(yǔ)句的話,C99規(guī)定編譯器要自動(dòng)在生成的目標(biāo)文件中(如exe文件)加入return 0;,表示程序正常退出。不過(guò),我還是建議你最好在main函數(shù)的最后加上return語(yǔ)句,雖然沒(méi)有這個(gè)必要,但這是一個(gè)好的習(xí)慣。
注意,vc6不會(huì)在目標(biāo)文件中加入return 0;,大概是因?yàn)関c6是98年的產(chǎn)品,所以才不支持這個(gè)特性?,F(xiàn)在明白我為什么建議你最好加上return語(yǔ)句了吧!不過(guò),gcc3.2(Linux下的C編譯器)會(huì)在生成的目標(biāo)文件中加入return 0;。
2、C++
C++98中定義了如下兩種main函數(shù)的定義方式:
int main()
int main(int argc,char*argv[])
int main()等同于C99中的int main(void);int main(int argc,char*argv[])的用法也和C99中定義的一樣。同樣,main函數(shù)的返回值類型也必須是int。
如果main函數(shù)的末尾沒(méi)寫(xiě)return語(yǔ)句,C++98規(guī)定編譯器要自動(dòng)在生成的目標(biāo)文件中加入return 0;。同樣,vc6也不支持這個(gè)特性,但是g++3.2(Linux下的C++編譯器)支持。
參考資料:
百度百科——return
getchar()函數(shù)的原型是 int getchar( void )
返回值是整型的
功能是:從標(biāo)準(zhǔn)輸入中讀取一個(gè)字符,也就是鍵盤(pán)敲擊字符,只接收單個(gè)字符
可以用gets()函數(shù)來(lái)接收多個(gè)字符
這里的 s 接收的是該字符的ASCII碼,非長(zhǎng)度。
如果從原基礎(chǔ)上改可以這樣
int i;
char s[20]; /*字符串需要長(zhǎng)度*/
gets( s );
i = num( s );
int num( char *s ) /* 這里的指針 ,后面學(xué)得到*/
{
}
套上去就可以了