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

1:概念html

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

例如:url

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

【注意】在C語言中沒有字符串,因此用字符數組來存放字符串。.net

例如:code

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

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

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

在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。

相關文章
相關標籤/搜索