C語言-字符數組和字符串
阿新 • • 發佈:2018-03-22
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‘ 才結束輸出。請看下面的例子:
純文本復制
- #include <stdio.h>
- int main(){
- int i;
- char str1[30] = "http://c.biancheng.net";
- char str2[] = "C Language";
- char str3[30] = "You are a good\0 boy!";
- printf("str1: %s\n", str1);
- printf("str2: %s\n", str2);
- printf("str3: %s\n", str3);
- return 0;
- }
運行結果:
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語言-字符數組和字符串