在c语言中,字符串是由字符组成的字符数组。定义字符串的规则是使用字符数组来存储字符串的字符,并在数组的末尾添加一个空字符'\0'来表示字符串的结束。例如,可以使用以下方式定义一个字符串变量:

char str[10] = "Hello"; 这里,str是一个字符数组,可以存储最多9个字符(包括空字符),并且以空字符结尾。注意,字符串的长度必须小于或等于数组的大小,否则会导致溢出。
另外,还可以使用字符指针来定义字符串,例如:char *str = "Hello"; 这种方式会自动在字符串末尾添加空字符。
1.char i = ‘x’ (单个字符的定义)字符串创建后为常量无法修改
2.一维字符串数组的定义
char i []=”xxxx”;(此方式定义的一维字符串数组必须立刻赋值)char i [4];(此方式相当于在存储器里面建立一个可以存储3个字符的数组空间)char i [4]=”xxxx”;char i [4]={‘x’’x’’x’’x’};其中定义的数组的元素数要比实际赋值的数量多一,用于存放\0位置
字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。
1、在C语言中,可以通过将汉字作为字符串输入。
由于一个汉字占2个字节,所以对汉字的操作,只能以2个字节作为操作单位。
2、下面通过具体实例来说明汉字在C语言中的使用:
char s[] = "首都北京"; // 将汉字字符赋值给字符数组
char s2[20]; // 定义字符数组,存放用户输入的汉字
scanf("%s", s2); // 接收用户输入的汉字字符
printf("%d\n", sizeof(s)); // 计算字符数组s所占的内存单元,输出9(最后一个字节是结束字符'\0')
printf("%s\n", &s[2]); // 输出“都北京”(首字占2个字节)
printf("%s\n", s2); // 输出用户输入的汉字
C语言中字符串的表示方式有两种:字符指针和字符数组。
字符指针表示字符串。
例如:char *p = "linux" ; p是字符指针,"linux" 字符串本身,当编译器遇到这种字符串表示时,会将指针和字符串本身分开处理, 字符指针p是一个变量,将其放在栈上,而字符串本身 "linux" 则被存放在代码段,其首地址赋给p。
字符数组表示字符串。
例如printf(“%8.2f\n”,a);“”里面的内容整体叫做格式控制字符串,8.2f就是格式字符串,\n叫做转义字符。printf的使用格式:printf(“格式控制字符串”,输出项列表),通俗的讲格式字符串就是“%”后面那些字符,表示按规定的格式输出数据。
C语言没有字符串类型,所以没办法进行定义字符串变量。
但是可以用字符数组来处理字符串。(这定义了一个字符数组,名为a)
也可以用来定义一个指针变量(定义了一个指针变量,名为p)。
C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。
字符型与整型互相通用,因此 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)。例如:
如果一个字符数组中包含一个以上'\0',则遇第一个'\0'时输出就结束。
(4) 用%S格式输入字符时,遇空格、Tab键和回车将自动结束输入。