怎么样定义一个字符串变量?
C语言没有字符串类型,所以没办法进行定义字符串变量。
但是可以用字符数组来处理字符串。(这定义了一个字符数组,名为a)
例:char a[] = "hello";
也可以用来定义一个指针变量(定义了一个指针变量,名为p)。
例:char *p = "hello";
C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。
定义: char c[10]
字符型与整型互相通用,因此 int c[10] 也可以定义字符数组。但由于两种类型分配字节不同, 用整型来定义会浪费空间, 另外这样定义实际意义也不大, 只是为了说明其合法性。
最简单的方法即逐个赋值: char c[10]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'}; 10个字符分别赋绐c[0]到c[9]10个元素。
初值个数小于数组长度,则只将这些字符赋绐数组中前面的元素,其余元素自动定为空字符(即'\0')。
可以用字符串常量来初始化字符数组;
char c[]="I am happy"; 注意此时数组的长度不是10,而是11,因为系统自动加上了'\0'
结束符。
<3> 字符数组的输入输出
(1) 逐个字符输入输出。用格式符"%c"输入或输出一个字符。
(2) 将整个字符串一次输入或输出。用"%S"格式符,意思是输出字符串(String)。例如:
char c[]={"china"};
printf("%S", c);
如果一个字符数组中包含一个以上'\0',则遇第一个'\0'时输出就结束。
(4) 用%S格式输入字符时,遇空格、Tab键和回车将自动结束输入。