C语言中的字符串是由\0
(空字符)终止的字符数组。
在C语言中有两种方法可以用来声明字符串。
- 通过字符数组
- 通过字符串文字
我们来看一下C语言中用char
数组声明字符串的例子 -
char ch[11]={&aposy&apos, &aposi&apos, &aposi&apos, &aposb&apos, &aposa&apos, &aposi&apos, &apos.&apos, &aposc&apos, &aposo&apos, &aposm&apos, &apos\0&apos}
如你所知,数组索引从0
开始,所以它将如下图表所示 -
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
y | i | i | b | a | i | . | c | o | m | \0 |
在声明字符串时,如果不想数组大小是强制性的。 那么可以将上面的代码改写为如下:
char ch[]={&aposj&apos, &aposa&apos, &aposv&apos, &aposa&apos, &apost&apos, &aposp&apos, &aposo&apos, &aposi&apos, &aposn&apos, &apost&apos, &apos\0&apos}
您还可以通过字符串文字定义字符串。 例如:
char ch[]="yiibai.com"
在这种情况下,&apos\0&apos
将由编译器自动在字符串末尾附加。
char数组和字符串文字之间的区别
唯一的区别是字符串字面值不能改变,而由char
数组声明的字符串可以更改。
C语言字符串示例
我们来看一个简单的例子来声明和打印字符串。 &apos%s&apos
用于打印字符串。创建一个源文件:string-print.c,其代码如下 -
#include <stdio.h>
void main()
{
char ch[11] = { &aposy&apos, &aposi&apos, &aposi&apos, &aposb&apos, &aposa&apos, &aposi&apos, &apos.&apos, &aposc&apos, &aposo&apos, &aposm&apos, &apos\0&apos }
char ch2[] = "www.yiibai.com"
printf("Char Array Value is: %s\n", ch)
printf("String Literal Value is: %s\n", ch2)
}
执行上面示例代码,得到以下结果 -
Char Array Value is: yiibai.com
String Literal Value is: www.yiibai.com