1. 首页 » 生活常识

C语言中如何计算字符串长度的方法详解

第十二章:字符(串)函数和内存函数

前言:C语言中会大量涉及到对字符和字符串的处理,但是C语言本身是没有字符串类型的,按照之前所学,需要处理字符串时,我们通常将其保存在一个字符数组或者是定义为常量字符串

(1)分类

C语言系列_10:字符串函数及其手动实现1

(2)字符串函数

A:strlen(求字符串长度)

第一:strlen的基本用法

C语言系列_10:字符串函数及其手动实现1

第二:strlen的注意事项

①:对于其返回值的注意事项

如下,从主观角度上讲,最终的输出结果和我们预期的是不一致的,这是因为strlen返回的类型是size_t,查看定义可知,size_t实际上就是unsignend int,编写库函数的人的设置这样的返回值的目的就在于他们认为字符串长度绝对不可能是负数。但是这样的一个设置,有时就会产生如下的歧义

C语言系列_10:字符串函数及其手动实现1

第三:模拟实现strlen

①:计数器的方式

C语言系列_10:字符串函数及其手动实现1

②:递归(不创建临时变量)

C语言系列_10:字符串函数及其手动实现1

③:指针-指针

C语言系列_10:字符串函数及其手动实现1

B:strcpy(字符串复制_不受限制)

第一:strcpy的基本用法

C语言系列_10:字符串函数及其手动实现1

第二:strcpy的注意事项

①:源字符串必须以'\0'结束

也就是如果使用字符数组的方式赋值,最后的元素必须是'\0',不然会找不到结束标志的

②:不要赋值到常量字符串中去

常量字符串是不可变的,也就是不能修改的

第三:模拟实现strcpy

C语言系列_10:字符串函数及其手动实现1

C:strcat(字符串追加_不受限制)

第一:strcat的基本用法

C语言系列_10:字符串函数及其手动实现1

C语言系列_10:字符串函数及其手动实现1

第二:strcat的模拟实现

C语言系列_10:字符串函数及其手动实现1

D:strcmp(字符串比较_不受限制)

第一:strcmp的基本用法

C语言系列_10:字符串函数及其手动实现1

C语言系列_10:字符串函数及其手动实现1

第二:strcmp注意事项

C语言中规定,大于时返回的是大于0的数字,小于时返回的是小于0的数字,但是在VS编译器下,他返回的数字却是固定的1或-1,所以为了使得代码更具有通用性,利用strcmp在判断字符串大小时,正确的写法如下

C语言系列_10:字符串函数及其手动实现1

第三:strcmp模拟实现

C语言系列_10:字符串函数及其手动实现1

声明:本文由"麦兜"发布,不代表"破站"立场,转载联系作者并注明出处:https://www.848586.cn/239111.html