C语言中的字符数组和字符串
字符数组是元素的数据类型为字符类型的数组
–char c[10], ch[3][4];
字符数组的初始化
–逐个字符赋值
–用字符串常量
0在ASCII表中也是0
注意:字符数组不检查越界
在C语言当中是没有字符串这个变量的,我们常用字符数组来处理字符串
c库函数使用最多的字符串处理函数有4个
①求字符串长度的函数strlen
②字符串拷贝函数strcpy
③字符串连接函数strcat
④字符串比较函数strcmp
\n在ASCII中是10 s1中quit是以\0结尾的 所以s1<s2 返回-1
字符串长度函数strlen
格式:strlen(字符数组)
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内
l\xhh表示十六进制数代表的符号
l\ddd表示8进制的
–例:对于以下字符串,strlen(s)的值为:
char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};
char s[ ]=“\t\v\\0will\n”;
char s[ ]=“\x69\141\n”;
答案:1 3 3
字符串拷贝函数strcpy
格式:strcpy(字符数组1,字符串2)
功能:将字符串2,拷贝到字符数组1中去
返值:返回字符数组1的首地址
l说明:
字符数组1必须足够大
拷贝时‘\0’一同拷贝
字符串连接函数strcat
格式:strcat(字符数组1,字符数组2)
功能:把字符数组2连到字符数组1后面
返值:返回字符数组1的首地址
说明:
字符数组1必须足够大
连接前,两串均以‘\0’结束;连接后,串1的 ‘\0’取消,新串最后加‘\0’
字符串比较函数strcmp
格 式:strcmp(字符串1,字符串2)
功 能:比较两个字符串
比较规则:对两串从左向右逐个字符比较 (ASCII码),直到遇到不同字符或‘\0’为止
返 值:返回int型整数
a. 若字符串1< 字符串2, 返回负整数 -1
b. 若字符串1> 字符串2, 返回正整数 1
c. 若字符串1== 字符串2, 返回零 0
其他字符串处理函数:
strncpy(p, p1, n) 复制指定长度字符串
strncat(p, p1, n) 附加指定长度字符串
strcasecmp忽略大小写比较字符串
strncmp(p, p1, n) 比较指定长度字符串
strchr(p, c) 在字符串中查找指定字符
strrchr(p, c) 在字符串中反向查找指定字符
可以减去它们本身来算出具体的位置(起始位置)
strstr(p, p1) 查找字符串 在长串中查找子串
isalpha() 检查是否为字母字符
isupper() 检查是否为大写字母字符
islower() 检查是否为小写字母字符
isdigit() 检查是否为数字
一般EOF的值为-1,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志
tolower() 转小写
toupper() 转大写