「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」
字符串
-
C语言没有字符串类型
-
字符串的存储和表示
- 字符串常量:“XFY”,“大发哥”
-
字符数组
- 方式一:初始化字符数组的每个元素,char str1[10]={'F','i','s','h','c','\0'};
- 方式二:不写元素个数,编译器自动计算,char str2[]={'F','i','s','h','c','\0'};
- 方式三:使用字符串常量初始化字符数组,char str3[]={"FishC"};
- 方式四(建议使用):使用字符串常量初始化,可以省略大括号,char str4[]="FishC";
-
注:字符串结束标志为‘\0’
-
字符串处理函数
-
获取字符串长度(不是尺寸):strlen 注意strlen计算的是输入字符串的长度,而sizeof包含了字符串结束符‘\0’
- 举例
- 结果
- 举例
-
拷贝字符串:strcpy和strncpy
- 不能使用赋值号直接赋值
-
strcpy(str1,str2);
- 参数1是目标字符串,参数2为拷贝源
- 使用时str1长度必须大于等于str2,不然出现问题,拷贝的时候结束符会一同拷贝过去‘\0’
- 举例
- 结果
-
strncpy(str1,str2,n);
- 受限拷贝长度,参数1是目标字符串,参数2为拷贝源,参数3代表拷贝的字符个数
- 如果全部替换则需加结束符‘\0’,或者多加一个拷贝数
- 举例
- 结果
-
连接字符串:strcat和strncat
- 举例
- 结果
- 注:该函数会自动在末尾添加结束符‘\0’
- 举例
-
比较字符串:strcmp和strncmp
- 比较两个字符串是否完全相同,如果一致则返回0,不一致则返回大于或小于0的值
- 原理:从第一个字符开始依次对比字符的ASCLL码值,如果第一个字符串中的对应字符的ASCLL码大于第二个字符串对应字符则返回一个大于0的值,反之。
- 举例
- 结果
-