1. 程式人生 > >C語言-字符數組和字符串

C語言-字符數組和字符串

ima fff -m window sheng body ipp pri urn

1:概念

用來存放字符的數組成為字符數組。

例如:

char a[10]={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘j‘,‘g‘,‘f‘,‘k‘};//

【註意】在C語言中沒有字符串,所以用字符數組來存放字符串。

例如:

char a[30]={"shisihuansheng.blog"};

char a[30]="shisihuansheng.blog";//這個寫法更為簡潔,方便,開發時候經常使用。

a[0]=s;a[1]=h 依次類推。

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

技術分享圖片

puts 和 printf 在輸出字符串時會逐個掃描字符,直到遇見 ‘\0‘ 才結束輸出。請看下面的例子:

純文本復制
  1. #include <stdio.h>
  2. int main(){
  3. int i;
  4. char str1[30] = "http://c.biancheng.net";
  5. char str2[] = "C Language";
  6. char str3[30] = "You are a good\0 boy!";
  7. printf("str1: %s\n", str1);
  8. printf("str2: %s\n", str2);
  9. printf("str3: %s\n", str3);
  10. return 0;
  11. }

運行結果:
str1: http://c.biancheng.net
str2: C Language
str3: You are a good

str1 和 str2 很好理解,編譯器會在字符串最後自動添加 ‘\0‘,並且數組足夠大,所以會輸出整個字符串。對於 str3,由於字符串中間存在 ‘\0‘,printf() 掃描到這裏就認為字符串結束了,所以不會輸出後面的內容。

需要註意的是,用字符串給字符數組賦值時由於要添加結束符 ‘\0‘,數組的長度要比字符串的長度(字符串長度不包括 ‘\0‘)大1。例如:

char str[] = "C program";

該數組在內存中的實際存放情況為:
技術分享圖片
字符串長度為 9,數組長度為 10。

C語言-字符數組和字符串