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