c语言字符数组
时间: 2023-08-24 21:14:33 浏览: 113
字符数组是C语言中常用的数据类型,用于存储字符序列,也就是字符串。在C语言中,字符数组是一种基于数组的数据类型,由一系列字符构成,以'\0'(空字符)结尾,表示字符串的结束。
字符数组的定义方式分为两种,一种是静态定义,另一种是动态定义。
静态定义:
```c
char str[20] = "Hello, world!";
```
其中,str是字符数组的名称,20是字符数组的大小,"Hello, world!"是初始化的字符串。
动态定义:
```c
char *str = "Hello, world!";
```
其中,str是字符数组的指针,"Hello, world!"是初始化的字符串。
需要注意的是,动态定义的字符数组只是一个指向字符串的指针,需要使用动态内存分配函数(如malloc)为其分配内存空间。
字符数组可以进行各种字符串操作,例如字符串拼接、字符串比较、字符串截取等等,都可以使用C语言提供的字符串函数(例如strcpy、strcat、strcmp、strncpy等等)来实现。
示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[20] = "Hello, ";
char str2[] = "world!";
char str3[20];
// 字符串拼接
strcpy(str3, str1);
strcat(str3, str2);
printf("str3: %s\n", str3);
// 字符串比较
if (strcmp(str1, str2) == 0) {
printf("str1 and str2 are equal\n");
} else {
printf("str1 and str2 are not equal\n");
}
// 字符串截取
strncpy(str1, str3, 5);
str1[5] = '\0';
printf("str1: %s\n", str1);
return 0;
}
```
输出结果为:
```
str3: Hello, world!
str1 and str2 are not equal
str1: Hello
```
阅读全文