[C语言 - 3] 字符串
字符数组 char *
- 看做一个特殊的字符数组, 在字符串结束为止添加'\0'结束符 (ASCII码0), 没有\0结尾的是普通的字符数组。
- 使用双引号定义的字符串自动在尾部加上\0
- puts(s)函数:输出内存直至遇到\0
- 数组变量名代表了数组地址,例如char s[20], s就是数组地址,不用&s
- gets(s)函数接收字符串输入,自动在尾部加入\0
- scanf("%s",s)不能接收空格、tab、回车
字符串数组
即是二维字符数组
1 int main() 2 { 3 char a[][10] = {"tom", "sam", "aka"}; 4 5 return 0; 6 }
字符处理函数
stdio.h
- putchar(c): 输出字符
- getchar():获取一个字符,返回值即为得到的字符
string.h
- strlen(s):返回字符串常量的字符长度,一个中文占3个字符位置,不包括结束符\0
包括其他的转义字符 - strcpy(char *, const char *):复制字符串,右边复制到左边,没有const修饰符的参数不能使用静态常量
使用数组char s[100]作为接收容器,不能使用指针字符串,发现超出数组范围也能正常工作 - strcat(char *, const char*):字符串连接,拼接右边到左边
- strcmp(const char *, const char *):字符串比较,返回左减去右的ASCII码差
只会比较第一个不同的字母 - strlwr:转换字符串小写
- strupr:转换字符串大写