位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 字符數(shù)組的整體引用

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-30

(1)使用printf()函數(shù)輸出字符串

只要在printf()函數(shù)中使用格式指示符“%s”就可以輸出字符串。例如:

    char s1[20] ="Hello boy"; 

    printf("%s\n",ch);

    printf()函數(shù)在輸出字符串時(shí),是通過(guò)在字符數(shù)組中尋找字符串結(jié)束標(biāo)記'\0'來(lái)判斷字符串是否結(jié)束。也可以將一個(gè)不包含'\0'的字符數(shù)組用printf()函數(shù)輸出,例如:

    char s2[5] ={'h','e','l','l','o'); 

    printf ("%s\n",s2);

輸出結(jié)果為:

image.png

為什么會(huì)輸出這樣的結(jié)果呢?其實(shí),printf()函數(shù)輸出時(shí),首先會(huì)將每個(gè)數(shù)組元素的內(nèi)容輸出,然后printf()函數(shù)會(huì)繼續(xù)訪(fǎng)問(wèn)內(nèi)存中位于數(shù)組之后的內(nèi)容,并當(dāng)做字符輸出,直到遇到字符串結(jié)束標(biāo)記'\0'或者試圖訪(fǎng)問(wèn)沒(méi)有分配給該程序的內(nèi)存單元而導(dǎo)致運(yùn)行時(shí)出錯(cuò)。所以,在編寫(xiě)程序時(shí),必須確保每個(gè)字符串結(jié)尾插入字符串結(jié)束標(biāo)記'\0'。

(2)使用scanf()函數(shù)輸入字符串

除了可以通過(guò)初始化使字符數(shù)組各元素得到初值外,也可以使用scanf()函數(shù)輸入字符串,只需在格式指示符中使用“%s”。例如:

    char str[20];

    scanf("%s",str);

使用scanf()輸入字符串時(shí),不需要使用取地址符“&”,因?yàn)閿?shù)組名本身就代表了數(shù)組的首地址。

(3)使用puts()函數(shù)輸出字符串

puts()函數(shù)和gets()函數(shù)是專(zhuān)門(mén)的字符串輸入輸出函數(shù),也包含在標(biāo)準(zhǔn)輸入輸出頭文件stdio.h中。

①puts()函數(shù)的一般調(diào)用方式:

    puts (字符數(shù)組);

②函數(shù)功能:把字符數(shù)組中所存放的字符串,輸出到標(biāo)準(zhǔn)輸出設(shè)備中去,并用VT取代字符串的結(jié) 束標(biāo)志'\0'。所以用puts()函數(shù)輸出字符串時(shí),不要求另加換行符。例如:

    char str[20]="Hello!"; 

    puts (str):

puts()函數(shù)也可直接輸出一個(gè)字符串常量,例如:

    puts("welcome");

③說(shuō)明

使用puts()函數(shù)輸出字符串常量或字符串變量時(shí),字符串中可包含轉(zhuǎn)義字符,例如:

    puts("wel\ncome");

輸出結(jié)果為:

    wel

    come

與printf()函數(shù)相比,Printf()函數(shù)一次能輸出多個(gè)字符串,而puts函數(shù)一次只能輸出一個(gè)字符串。

(4)使用gets()函數(shù)輸入字符串

①gets()函數(shù)的一般調(diào)用方式如下:

    gets(字符數(shù)組);

②函數(shù)功能:從標(biāo)準(zhǔn)輸入設(shè)備——鍵盤(pán)上,讀取1個(gè)字符串(以按下Enter鍵結(jié)束),將其存儲(chǔ)到字符數(shù)組中。例如:

    char str[20]; 

    gets (str); 

    puts (str);

輸入:

    Hello/

則字符數(shù)組str中將依次存入'H''e''l''l''o''\0'。

③說(shuō)明

使用gets()函數(shù)輸入的字符串,其長(zhǎng)度沒(méi)有限制,編程者需保證字符數(shù)組有足夠大的空間來(lái)存放輸入的字符串。

gets()函數(shù)輸入的字符串中允許包含空格,而scanf()函數(shù)不允許。


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部