C語言 字符數(shù)組的整體引用
(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é)果為:
為什么會輸出這樣的結(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ù)不允許。
點擊加載更多評論>>