C C 字元陣列的輸入輸出

2021-08-17 10:08:12 字數 1172 閱讀 3850

字元陣列就是char陣列,當維度是一維是可以當做「字串」,當維度是二維時可以當成是字串陣列,即若干字串。字元陣列的輸入除了使用scanf外,還可以使用getchar或者gets;其輸出除了使用printf外,還可以使用putchar或者puts。

(1)scanf輸入,printf輸出

scanf對字串的輸入有%s和%c兩種格式。%c格式用來輸入單個字元,它能夠識別空格和換行符並將其儲存到字元陣列中;%s格式用來輸入乙個字串,它通過空格和換行來識別乙個字串的結束。也就是說使用%s格式輸入並儲存到字元陣列中的字串是不含空格的。下面是乙個例項:

int main()
輸入字串「abc def ghi」,輸出的結果為「abc」。可以看到,%s識別空格作為字串的結尾,因此第乙個空格後面的字元都不會被讀入。

(2)getchar輸入,putchar輸出

getchar和putchar分別用來輸入和輸出單個字元。getchar可以識別換行符和空格並將其儲存。下面是乙個例子:

int main()
在這裡我們如果輸入「a「,然後敲回車,然後輸入」bc「,再敲回車,輸出的結果會是這樣:ab

這是由於getchar可以識別換行符,所以c2實際上儲存的是換行符,因此字元c沒有被存入,字元ab之間會有乙個換行出現。

(3)gets輸入,puts輸出

gets用來輸入一行字串並將其存放於一維陣列(或二維陣列的一維)中,讀取字串直到換行符結束,但換行符會被丟棄,然後再末尾新增『\0』,它與scanf(」%s「, s)相似,但不完全相同,gets可識別空格並將其輸入。puts函式會自動換行。下面是乙個例子:

int main()  

puts(str1);

for(int i = 0; i < 3; i ++)

return 0;

}

輸入下面幾個字串:

abc def

qaqt_t

woaini

這幾個字串都可以原樣輸出,因為gets可以識別空格並將其儲存到字串中。另外需要注意的是,gets函式會無限讀取,不會判斷上限,所以程式設計師應該確保buffer的空間足夠大,以便在執行讀取操作時不會發生溢位。如果溢位,多出來的字元會被寫入到堆疊中,這就覆蓋了堆疊原有的內容,破壞乙個或多個不相關變數的值。

C C 字元陣列的輸入輸出

字元陣列就是char陣列,當維度是一維是可以當做 字串 當維度是二維時可以當成是字串陣列,即若干字串。字元陣列的輸入除了使用scanf外,還可以使用getchar或者gets 其輸出除了使用printf外,還可以使用putchar或者puts。1 scanf輸入,printf輸出 scanf對字串的...

C C 字元陣列的輸入輸出

字元陣列就是char陣列,當維度是一維是可以當做 字串 當維度是二維時可以當成是字串陣列,即若干字串。字元陣列的輸入除了使用scanf外,還可以使用getchar或者gets 其輸出除了使用printf外,還可以使用putchar或者puts。1 scanf輸入,printf輸出 scanf對字串的...

字元陣列的輸入輸出

scanf 對字元型別有 c 和 s 兩種格式 printf 同理,下同 其中 c 用來輸入單個字元,s 用來輸入乙個字串並存在字元陣列裡。c 格式能識別空格跟換行並將其輸入,而 s 通過空格或換行來識別乙個字串的結束。示例 includeint main 輸入 tat tat tat 輸出 tat...