一、定义和数组类型
字符数组是由一系列字符组成的存储区域。它是C/C++中最基本的数据类型之一,我们使用字符数组可以存储字符串,也可以保存一串以字符方式表示的数据或者代码。它的定义方式是使用关键词char来定义,中间可以接一个数组名,也可以直接定义。
char arr1[] = "hello world!"; char arr2[8] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
数组在定义时可以使用“[]”来指定数组的长度,也可以通过初始化语句确定,不指定则系统会根据后面赋值的个数自动确定数组长度。
二、数组的初始化
数组的初始化是定义并赋值的一个过程,可以使用以下方式来初始化:
char arr[] = "hello world!"; char arr2[8] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}; char arr3[10] = {0}; // 全部初始化为0
初始化后的数组元素可以通过下标访问,如arr2[2]。在初始化过程中,如果元素个数少于数组长度,则剩余元素自动设置为0,如果元素个数超过数组长度,则报错。
三、数组的遍历和修改
数组的元素可以通过循环来遍历,数组的循环方式与其他的循环基本相同。
for(int i=0; i<8; i++){ arr2[i] = i+1; }
通过遍历可以修改数组的值,符号“=”代表赋值操作,可以用来对数组元素进行修改。
四、数组参数的传递
在函数中,通过参数将数组传递到函数中,并在函数中对数组进行操作。
void func(char arr[], int len){ for(int i=0; i<len; i++){ printf("%c", arr[i]); } }
第一个参数是字符数组,第二个参数是数组长度,可以在函数中进行操作和输出。需要注意的是,数组在函数调用时自动退化为指针,函数内无法获取数组的长度。
五、指针和数组名
在C语言中,数组名和指针变量的作用是类似的。数组名是指向数组首元素的指针,也就是数组的地址。
char arr[] = "hello world!"; printf("%p\n", arr); // 输出arr的地址 printf("%p\n", &arr[0]); // 输出arr第一个元素的地址
数组名也可以进行指针运算,和指针变量的行为类似。
char arr[] = "hello world!"; char* p = arr; printf("%c\n", *p); // 输出h p++; printf("%c\n", *p); // 输出e
六、字符串操作函数
C语言提供了很多字符串操作函数,方便我们进行字符串的操作。
strcpy(dest, source); // 拷贝字符串 strcat(dest, source); // 连接字符串 strlen(str); // 获取字符串长度 strcmp(str1, str2); // 比较字符串 strchr(str, ch); // 查找字符 strstr(str1, str2); // 查找字符串
原创文章,作者:DRQXL,如若转载,请注明出处:https://www.506064.com/n/372690.html