一.字符数组
1.定义:格式如下
char a[10]; //此处就表示定义了一个长度为10的字符数组
2.引用:
也和其余的数组一样,是下标引用。
3.初始化:
如下代码为字符数组初始化的几种情况:
int main()
{char arr[5] = { 'a','b','c','d','e'};char arr[] = { 'a','b','c','d','e' };//与上面的等价char arr[10] = { 'a','b','c','d','e' };//如果{}中的元素个数小于[]内的值,其余的默认为为 '\0'char arr[2][3] = { {'a','b'},{'d','e','f'}};//二维数组也同理
}
二.字符串
1.数组的形式来写字符串,如下:
char ch[ ] = { "hello“ } ;//此处该数组的长度应该为6,这是因为字符串后面会自动添加一个'\0'
三.字符数组输入输出和字符串处理函数
2.字符数组的处理
(1)逐个字符输入和输出。本质上和普通的数组一样,也可以利用循环语句来输入,此处不再赘述。
(2)整个字符串的输入,输出:可以使用 %s 来输入。如下:
char ch[10];
scanf_s("%s",ch);
printf("%s",ch);
需要注意的是,在输入字符串的时候,空格和回车都相当于字符串的分隔符,不能被读入
3.字符串处理函数:
(1)gets函数,gets 函数的作用就等同于 scanf_s("%s",ch); 具体格式如下:
gets(数组名称); //值得注意的是,使用gets函数的时候可以输入任意的字符,回车键停止,()内可以是数组名或者指针
(2)puts函数同理...
(3)strlen函数。(求字符串的长度)具体如求数组arr的长度:
strlen(arr);//需要头文件 #include<string.h>
(4)strcpy函数。(字符串复制函数)具体如将str1中的字符转化为str2中的值:
strcpy(str1,str2);//需要保证str1的长度足够大,其真实的含义是:将str2中的字符串内容(包含‘\0’)复制到到str1中,返回的是str1的地址值。
(5)stract函数。(字符串连接函数)如将arr1连接到arr2后面:
stract(arr2,arr1);//在连接的时候arr1会自动覆盖arr2后面的‘\0’
(6)strcmp函数。(字符串比较函数)如比较arr1和arr2的大小:
strcmp(arr1,arr2);//指的是将两个字符串从左到右的每一个字符比较ASCII码值,知道出现'\0'或者不相等为止。如果arr1>arr2,返回正整数;如果arr1<arr2,返回负整数;如果arr1=arr2,返回0