c語言字串,字串陣列的賦值使用問題

2021-09-12 21:59:39 字數 1366 閱讀 8869

用來存放字元的陣列稱為字元陣列,例如:

char a[10]; //一維字元陣列

char b[5][10]; //二維字元陣列

char c[20]=; // 給部分陣列元素賦值

char d=; //對全體元素賦值時可以省去長度

以下均等效

const u8 text_buffer=;

const char text_buffer1=;

const char text_buffer2="apollo stm32h7 iic test123";

char *a1="234234";

char *a2=;

字元陣列實際上是一系列字元的集合,也就是字串(string)。在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。

c語言規定,可以將字串直接賦值給字元陣列,例如:

char str[30] = ;

char str[30] = "c.biancheng.net"; //這種形式更加簡潔,實際開發中常用

陣列第0個元素為 'c',第1個元素為 '.',第2個元素為 'b',後面的元素以此類推。也可以不指定陣列長度,例如:

char str = ;

char str = "c.biancheng.net"; //這種形式更加簡潔,實際開發中常用

在c語言中,字串總是以'\0'作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了'\0'

'\0'是ascii碼表中的第0個字元,用nul表示,稱為空字元。該字元既不能顯示,也不是控制字元,輸出該字元不會有任何效果,它在c語言中僅作為字串的結束標誌。
puts 和 printf 在輸出字串時會逐個掃瞄字元,直到遇見 '\0' 才結束輸出。請看下面的例子:

#include 

int main()

執行結果:

str1:

str2: c language

str3: you are a good

str1 和 str2 很好理解,編譯器會在字串最後自動新增 '\0',並且陣列足夠大,所以會輸出整個字串。對於 str3,由於字串中間存在 '\0',printf() 掃瞄到這裡就認為字串結束了,所以不會輸出後面的內容。

需要注意的是,用字串給字元陣列賦值時由於要新增結束符 '\0',陣列的長度要比字串的長度(字串長度不包括 '\0')大1。例如:

char str = "c program";
該陣列在記憶體中的實際存放情況為:

字串長度為 9,陣列長度為 10。

字串字元陣列的賦值

字元陣列的定義與初始化 char str 10 如果說提供的字元的個數大於陣列的長度,就按語法錯誤處理,如果小於陣列的長度,不夠的位置用空字元補全 0 字元陣列與字串 1 c 語言中將字串當做字元陣列來處理 字串的結束標誌是 0 而前面的所有字元組成字串,不算 0 2 對於字串常量的話,系統會自動在...

C語言,字串的處理,陣列字串,指標字串。

c語言菜鳥教程 void memset void str,int c,size t n 複製字元 c 乙個無符號字元 到引數 str 所指向的字串的前 n 個字元。size t strlen const char str 計算字串 str 的長度,直到空結束字元,但不包括空結束字元。char str...

C語言的字元陣列,字串,字串常量

首先來看一段源 include int main 剩餘部分為 0 char brr 不是字串,因為沒有 0 char crr 10 字元陣列特有 char drr 10 abc 字元陣列特有 char err abc 字元陣列特有 char frr 10 printf s n arr printf ...