1.字符数组
1.字符数组的初始化
1.单字符形式
char a[3]={'a','b','c'} 定义一个字符型一维数组,数组名a,三个下表变量a,b,c
char b[][3]={'a','b','c','d','e','f','g'} 定义一个二维字符型数组,3行三列,字符为a,b,c,d,e,f,g,0,0,0(没有定义的,自动调整为空字符)
char c[5]={65,66,67}; 定义一维字符数组,五个下标变量:相当于A,B,C,0,0没有定义的自动置为0
和其他类型数组的初始化形式一样
2.字符串形式
char a[10]="string" 数组a分配空间的时候分配10个字节,string存入前面7个字节(因为最后要多存一个/n),剩下三个自动置为0(空字符)
char b[]="string" 数组b只分配7个字节(按需分配)
char c[3][8]={"abc","123","string"} 二维 数组c分配24个字节,每个一维数组8个字节,一维数组a[0]存储abc,a[1]存储123,a[2]存储string
对于字符串形式的初始化,能够保证数组中储存的是一个或几个字符串,将来可以用puts(),printf()函数以字符串形式输出他们,单字符形式的初始化不能保证所存存储的是一个字符串,也许只是一个字符序列,只能用循环逐个输出字符
2.字符串的储存和字符串结束的标志
将字符串的每个字符的ASCII码按顺序储存到内存的一段连续的空间内,最后添加一个空字符\n(0)表示结束
2.字符串处理函数
1.字符串输入函数gets()
1.函数原型
char*gets(char*s)
2.函数功能
从键盘读取若干字符(以换行符作为读取结束的标志位),存入s所指内存区域,并在最后一行填上\n
3.返回值
输入成功返回指针s,不成功返回NULL
2.字符串输出函数puts()
1.函数原型
int puts(char*s)
2.函数功能
将内存中以s起始,空字符为结束标志位的字符串输出,输出后自动换行
3.返回值
换行符或者0,失败则为EOF
3.字符串连接函数stract()
1.函数原型
char*stract(char*p1,char*p2)
2.功能
将内存中p2为起始的字符串连接到以p1为起始的字符串的后面,组成一个字符串,最后面有一个空字符
3.返回值
返回连接后字符串的首地址,即p1
4.字符串复制函数strcpy()
1.函数原型
char*strcpy(char*p1,char*p2)
2.函数功能
将内存中以p2为起始地址的字符串复制到p1所指的内存区域,使之成为一个字符串,最后有空字符,p1所指的原有区域的内容被覆盖
3.返回值
返回p1
5.字符串比较函数strcmp()
1.函数原型
int*strcmp(char*p1,char*p2)
2.函数功能
将内存中以p1为首地址的字符串和以p2为首地址的字符串逐个字符进行比较,直到遇到两个不同的字符或者同时遇到两个空字符
3.返回值
如果遇到不同的字符,前者大则返回正数,前者小则返回负数,如果同时遇到两个空字符,返回0
6.字符串长度测试函数
1.函数原型
int strlen(char*str)
2.函数功能
测试内存中以str为起始地址的字符串中有效字符的个数,即空字符之前有多少个字符
3.返回值
字符串的长度
标签:字符,函数,空字符,C语言,char,数组,字符串,处理函数 From: https://blog.csdn.net/m0_69142917/article/details/137401028