字符函数和字符串函数的使用及模拟实现(上)(1)

简介: 字符函数和字符串函数的使用及模拟实现(上)

前言

重点介绍处理 字符和字符串 的库函数的使用和注意事项

一、函数介绍

1.strlen

strlen,是字符串长度的函数


返回类型为 size_t 及无符号整型unsigned int    因为字符串长度必定都为正数,不可能出现负数,所以将返回值设置为无符号数会更加合适。


参数为char *类型的指针   要求字符串的长度,应该将字符串的首地址传过去,所以参数为char*


2.注意事项:

    strlen返回类型为无符号整型,所以在比较两个字符串长度的时候,要格外注意!!

1.strlen ( str2 ) - strlen ( str1 ),其返回类型都是无符号整型,做运算时,结果自然也是无符号整型,原码反码补码都是一样的,结果永远为大于零的数。结果一直为  >.

2.strlen遇到字符串位置的 ‘\0’,会停下来,斜杠零之前字符个数,及字符串的长度!

    结果我们可知,在字符串存储时,斜杠零会自动在字符串的结尾处添加,但若单独存字符的话,是没有斜杠零存储进去的,所以会出现arr2长度为18的情况!

    申请内存时,它的前后都是有其他内存空间的,所以我们不保证其他空间中,是否有斜杠零,所以strlen(arr2)=16结果是随机值!

2.strcpy

Copy a string,显而易见,拷贝字符串


返回类型char *指针,参数为目的字符串的地址,源字符串的地址


                                 及(源字符串要拷贝到目的字符串中)


2.注意事项

1.源字符串中必须要有斜杠零,当拷贝过程中,遇到斜杠零会停止拷贝!


2. 会将源字符串中的 '\0' 拷贝到目标字符串中

3.要注意,目的字符串的空间一定要大于源字符串空间,不然会报错,拷贝失败!

3.strcat

Append a string.     append增补,追加


追加字符串


返回类型 char *,返回目的字符串的地址


参数,目的字符串地址和源字符串地址,类型都为char *。


2.注意事项

1.source字符串  追加在 dest字符串中,在目的字符串斜杠零位置开始追加,追加结束后,会自动带一个斜杠零。

2.目的字符串空间要大,足够追加!

3.源字符串中,必须要有斜杠零。

4.你是不是有自己追加自己的这种想法?当然不行!

追加过程中,会将源字符串中的斜杠零覆盖掉,导致字符串中没有斜杠零,即没有停止的位置,会一直死循环下去!

4.strcmp


compare string,比较字符串

返回类型为int

参数为 字符串1 和 字符串2 的地址,类型为char*

比较规则

举例一:

举例二:

是不是看出一些眉目?比较字符串当然不是看字符串的长度!比较的是每一对字符的大小,ASCII码值的大小

第一个例子:

第一对相等'a'= 'a',第二对 'a'< 'b' ,所以字符串2大于字符串1,后面的无需比较。

第二个例子明白了吧!

长度受限的字符串函数

5.strncpy



目录
相关文章
|
C语言 C++
C/C++字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数
C/C++字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数
61 0
|
6月前
(一)字符函数和字符串函数详细讲解和模拟实现(优化)
(一)字符函数和字符串函数详细讲解和模拟实现(优化)
|
6月前
(二)字符函数和字符串函数详细讲解和模拟实现(优化)
(二)字符函数和字符串函数详细讲解和模拟实现(优化)
|
7月前
字符串函数的模拟实现
字符串函数的模拟实现
47 1
|
7月前
|
C语言
字符函数和字符串函数解析及模拟实现
字符函数和字符串函数解析及模拟实现
82 0
|
C语言 C++
C/C++字符函数和字符串函数详解————内存函数详解与模拟
C/C++字符函数和字符串函数详解————内存函数详解与模拟
54 1
|
编译器 C语言
字符串函数的使用及模拟实现
字符串函数的使用及模拟实现
44 0
|
程序员
字符串函数的使用及其模拟实现
字符串函数的使用及其模拟实现
53 0
字符函数和字符串函数的使用及模拟实现(上)(2)
字符函数和字符串函数的使用及模拟实现
89 0