在C语言中,将字符串作为字符数组来处理。C语言规定了一个“字符串结束标志”,以字符‘\0’代表。也就是说,在遇到第一个‘\0’字符时,表示字符串结束,由它前面的字符组成字符串。
一、字符数组
用字符串常量来初始化字符数组,例如:
/* 例1 */
char str[] = {"I am happy"}; //也可以省略花括号
char str[] = "I am happy";
注意:这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素逐个赋值。例如:
char str[];
str = "I am happy"; //这是错误的
正确写法如下:
char str[] = {'I',' ','a','m',' ','h','a','p','p','y','\0'};\\sizeof(str)=11,等价于例1的写法
/*但是与下面这种不等价*/
char str[] = {'I',' ','a','m',' ','h','a','p','p','y'}; \\sizeof(str)=10
说明:字符数组并不要求它的最后一个字符为‘\0’,例如下面这种写法也完全合法:
char str[5] = {'C','h','i','n','a'};
但是,字符串一定是以‘\0’结尾。
二、字符串
在C语言中可以用两种方式来表示和存放字符串:
1、用字符数组存放一个字符串,如:
char str[] = "I love China";
2、用字符指针指向一个字符串,如:
char *str = "I love China";
注意:对于字符数组只能对其各个元素赋值,不能用以下方法赋值
char str[16];
str = "I love China"; /*错误*/
\****************************************\
char str[16] = "I love China"; /*正确*/
而对于字符指针变量,采用如下两种方式均可
char *str = "I love China"; \*正确*\
\******************与下面的写法等价**************\
char *str;
str = "I love China"; \*正确*\
------------------------------------------------The end---------------------------------------------------