C語(yǔ)言中的字符串是由\0
(空字符)終止的字符數(shù)組。
在C語(yǔ)言中有兩種方法可以用來(lái)聲明字符串。
我們來(lái)看一下C語(yǔ)言中用char
數(shù)組聲明字符串的例子 -
char ch[11]={'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '\0'};
如你所知,數(shù)組索引從0
開(kāi)始,所以它將如下圖表所示 -
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
y | i | i | b | a | i | . | c | o | m | \0 |
在聲明字符串時(shí),如果不想數(shù)組大小是強(qiáng)制性的。 那么可以將上面的代碼改寫為如下:
char ch[]={'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't', '\0'};
您還可以通過(guò)字符串文字定義字符串。 例如:
char ch[]="yiibai.com";
在這種情況下,'\0'
將由編譯器自動(dòng)在字符串末尾附加。
char數(shù)組和字符串文字之間的區(qū)別
唯一的區(qū)別是字符串字面值不能改變,而由char
數(shù)組聲明的字符串可以更改。
我們來(lái)看一個(gè)簡(jiǎn)單的例子來(lái)聲明和打印字符串。 '%s'
用于打印字符串。創(chuàng)建一個(gè)源文件:string-print.c,其代碼如下 -
#include <stdio.h>
void main()
{
char ch[11] = { 'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '\0' };
char ch2[] = "www.yiibai.com";
printf("Char Array Value is: %s\n", ch);
printf("String Literal Value is: %s\n", ch2);
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
Char Array Value is: yiibai.com
String Literal Value is: www.yiibai.com