C C 字元陣列 注意事項

2021-10-07 04:40:08 字數 1151 閱讀 5753

c/c++中,字元陣列的輸入有很多種,但是每種情況都是不一樣的,一定要把字元陣列的每種輸入輸出的情況弄清楚,這樣才能在不同的情況下使用不同的方法。

1、字元陣列的初始化方法

一、如果要初始化的字串種還有空格,應該把空格也當作乙個字元輸入,注意,字元是使用單引號。

char str[15]=;

方法二、直接使用字串初始化,但是僅限於在初始化時使用,程式其他位置不允許這樣直接賦值整個字串。

char str[15]="good story!";

2、字元陣列的輸入輸出

方法一、scanf 輸入,printf 輸出

scanf/printf 對字元型別有 %c 和 %s 兩種格式,%c用來輸入單個字元,可以識別空格和換行並將其輸入,而 %s 通過空格或者換行來識別乙個字串的結束。

方法二、getchar()輸入,putchar()輸出

他們是對單個字元的輸入和輸出,getchar()可以識別換行符,我們使用getchar()進行多行輸入時,一般會用getchar()把輸入中每行末尾的換行符吸收掉。

方法三、gets輸入,puts輸出

gets()用來輸入一行字串(它把換行符 \n 當作輸入結束),並存放在乙個一位陣列中。

puts()用來輸出一行字串,即將陣列中的內容列印出來,並且緊跟乙個換行。

基於 gets()輸入的特性,如果我們用 scanf 輸入乙個整數之後,要使用 gets(), 這時一定要先使用 getchar() 把換行符吸收掉。

3、字元陣列的存放方式

字元陣列的末尾都有乙個 空字元 \0  以表示存放字串的結尾。

使用 scanf 的 %s 或者 gets() 時,在輸入字串時會自動在末尾新增空字元,並占用乙個字元位。而printf 和 puts()就是 通過識別 \0 作為字串的結尾進行輸出的。

如果不是使用scanf 的 %s 或者 gets()輸入字串的話,比如用 getchar() 一定要在字串末尾手動加入 \0, 否則 printf 和 puts() 會因為無法識別字串末尾而輸出一堆亂碼。

c c 注意事項

1,在使用變數前初始化他們。包括指標可初始化為null。2,返回棧裡的物件是危險的,尤其不能返回指標。char getbuff 是錯誤的。3,char型別的符號問題。4,不要依賴表示式的運算次序,一般編譯器都進行優化,先進行函式求值,再求複雜 表示式,再處理簡單資料。5,函式形參的求值是沒有次序的。...

C C 的注意事項

最近除錯c語言程式,出了一些錯誤,費了很大的力氣才找到這些bug。現在把這些錯誤記錄下來,同時做一些程式設計上的原則上的約束,希望能達到兩個目的 1 看到類似的情況,能馬上定位知道是什麼錯誤。2 不在犯這種錯誤。將64位整型轉換為32位整型,貌似是沒什麼問題。但是在做多結點間資料通訊的時候,這個不注...

陣列注意事項

1.宣告陣列時候不能帶長度 例如 dog mydogs 7 錯誤 2.但是可以在宣告的時候把方括號放在左右兩邊 例如 int mysocres 雖然這樣的宣告讓人不爽,但是如果這樣宣告對於語法是完全正確的。可以編譯通過的。byte big new byte 7 7 byte b new byte 2...