回覆列表
-
1 # 弌94922977
相關內容
- C語言中怎樣獲得字串中的單個字元?
- C語言。要輸入一個超大數比如111111111111111111111111111111111111111怎樣用字串陣列求各位的和呢?
- 用C語言編寫程式,將字元陣列中的指定字元替換為另一個字元?
- C語言字元陣列?
- 如何把一個字元指標指向的字串複製給字元陣列?
- C語言。輸入一個字串,內有陣列和非數字字元,將其中連續的數字作為一個整數,依次存放到一陣列a中?
- C語言裡如何輸入幾個字串放到一個數組中?
- C語言程式設計中,輸入一個字串陣列,如何得出該陣列的長度?
- c語言,輸入一串字元(長度不超過80個字元),要求將其中的數字字元複製到另一個字串中?
- 在C語言中,要求編寫程式在給定的字串中查詢指定的字元?
本來不想回答這個問題(因為有人告訴我這種問題回答多了就會老給我推送這種問題),但是看到竟然有誤導性回答,我還是簡單說一下吧……
你這種寫法根本就不是一個字串的賦值寫法,你這就是一個包含5個元素的陣列,沒有任何多餘的東西。 C語言沒有對String(字串)這種型別的支援,它處理String時就是以字元陣列的形式來儲存和操作,而且編譯器會為以雙引號引起來的字串內容額外增加一個NULL,記為"\0",這個\0就是一個真實的儲存位元組,對應的二進位制內容就是[0000 0000]。這就是C語言對字串的“特殊”處理。(至於你寫的/0,我不知道你是在哪看到這種escape sequence用法的)。 你寫: 那就是一個普通陣列,沒有\0之類的會給你加在結尾,這個就是一個包含五個元素的陣列,有效訪問空間就是a[0]到a[4],超過a[4]的都是非法訪問。 你想表示一個字串,那就寫: 編譯器在發現雙引號引用的部分,會當作字串,結尾會自動補一個\0,而且會自動計算陣列的合適長度(例子的有效長度為6,包括一個\0)。如果你非要一個字元一個字元的表示,那基本上相當於: 當然你也可以將一個字串放到一個有更大空間的定長數組裡,如: 然後後續用C語言標準庫的字串操作函式給它接一部分內容,如: 這樣a就變成了: C語言沒有內建的處理整個陣列的方法(比如複製、比較陣列等),它也只對字串形式的陣列有非常少的方法,如strcpy, strcmp, strcat等。我不知道你是怎麼學習陣列和字串的,我只記得我大一第一次學字串時在理解上也有疑問,但都可以透過上機(圖書館機房刷卡1塊錢1小時)操作來自己弄明白。勤動手比勤動嘴要更有利於自己學到知識。