位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

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

提問人:劉團圓發(fā)布時間:2020-11-30

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

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

    char s1[20] ="Hello boy"; 

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

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

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

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

輸出結(jié)果為:

image.png

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

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

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

    char str[20];

    scanf("%s",str);

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

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

puts()函數(shù)和gets()函數(shù)是專門的字符串輸入輸出函數(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ù)輸出字符串時,不要求另加換行符。例如:

    char str[20]="Hello!"; 

    puts (str):

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

    puts("welcome");

③說明

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

    puts("wel\ncome");

輸出結(jié)果為:

    wel

    come

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

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

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

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

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

    char str[20]; 

    gets (str); 

    puts (str);

輸入:

    Hello/

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

③說明

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

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


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

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