16.字符串函数的使用和模拟实现(全)

简介: 16.字符串函数的使用和模拟实现(全)

字符分类函数ctype.h

会就islow(小写),toupper(转化为大写)举例

例如

if (islower(c))

c-=32;    就可以实现toupper的功能啦

字符转化函数

if (islower(c))

c=toupper(c);

头文件string.h

strlen(\0前长度)

字符串以\0作为结束标志,strlen函数返回的是在\0前面出现的字符个数,不包括\0

一种常见错误:

模拟实现

传入先断言assert(str)

1.计数器方式

2.递归//不创建临时变量

3.指针-指针(保留初始)

保留初始,后用++指针减初始

strcpy 拷贝

string copy

char* strcpy(char* arr1,constc char* arr2)

将arr2拷给arr1

模拟实现

数组名是地址,常量值

strcat 追加

strcat(arr1,arr2)

将2追加到1的后面

模拟实现

模拟实现无法自我追加


strcmp 比较大小

因为数组名==首地址//常量字符串名==首字符地址

所以无法直接比较,要借助函数了

应用:按照首字母排序

模拟实现

通过循环遍历两个字符串中的字符,并在遇到不相等字符或者其中一个字符串的结尾时结束循环

实践:

解释:

通过循环遍历两个字符串中的字符,并在遇到不相等字符或者其中一个字符串的结尾时结束循环

实践:

解释:

  1. while (*str1 == *str2): 这是一个while循环,它会在str1指向的字符和str2指向的字符相等时执行。循环会一直执行直到遇到不相等的字符或者其中一个字符串的结尾。
  2. if (*str1 == '\0'): 在循环内部,这个if语句用于检查str1指向的字符是否为字符串的结尾符号\0,即判断是否到达了字符串的末尾。如果str1的当前字符是字符串结尾符号,那么说明两个字符串相等,函数返回0。
  3. str1++; str2++;: 在循环内部,这两行代码用于将指针str1str2分别向后移动一个位置,指向下一个字符,以便进行下一轮的比较。
  4. return *str1 - *str2;: 如果循环结束时两个指针指向的字符不相等,那么函数会返回这两个字符的ASCII码之差。这样可以实现按照字典顺序比较字符串。

strn函数 长度受限

相对安全

strncpy

源字符串长度小于num时,在后面追加0,直到num个

strncat

小于num时,只追加到\0

strncmp

最多比较num个,提前发现不一样就提前结束

strstr 返回出现位置

返回2在1中第一次出现的位置,2要和1中某一块完全相等

模拟实现

所以存在两个循环,三个初始化保留数据,好用于返回的量

while(==),循环条件,为0跳出

——>    !0  为0执行

strtok 切分字符串(for进阶)

例如:tiantiankaixin.xiaom@jiayou

实现切分后:tiantiankaixin    xiaom   jiayou

str: 需要分割的字符串

sep:分隔符集合

函数返回:结尾将其用\0标记,返回分隔符前字符串指针

(函数会改变被操作字符串,所以切分的多为临时拷贝的内容)

准则:

如果字符串中不存在更多的标记,则返回NULL指针

运行

头文件 erron.h

strerror 翻译错误

作用:把发生错误自动生成的错误码,翻译为错误信息

0~10之间的错误消息

perror 打印错误

perror=printf+strerror    //不用%s

关于0的几种理解

0--数字0

‘0’--字符0--ascii=48

NULL--空指针--0

‘\0’--字符--ascii=0

" "--空字符

//有用的话  点赞支持一下叭  感谢~


相关文章
|
3月前
(二)字符函数和字符串函数详细讲解和模拟实现(优化)
(二)字符函数和字符串函数详细讲解和模拟实现(优化)
|
3月前
(一)字符函数和字符串函数详细讲解和模拟实现(优化)
(一)字符函数和字符串函数详细讲解和模拟实现(优化)
|
4月前
字符串函数的模拟实现
字符串函数的模拟实现
29 1
|
4月前
|
C语言
字符函数和字符串函数解析及模拟实现
字符函数和字符串函数解析及模拟实现
60 0
|
9月前
|
程序员
字符串函数的使用及其模拟实现
字符串函数的使用及其模拟实现
45 0
|
9月前
|
编译器 C语言
字符串函数的使用及模拟实现
字符串函数的使用及模拟实现
33 0
|
11月前
|
C语言 C++
C/C++字符函数和字符串函数详解————内存函数详解与模拟
C/C++字符函数和字符串函数详解————内存函数详解与模拟
43 1
|
C语言
深入探索字符串函数与模拟实现
深入探索字符串函数与模拟实现
89 1
深入探索字符串函数与模拟实现
|
存储
字符函数和字符串函数的使用及模拟实现(上)(1)
字符函数和字符串函数的使用及模拟实现(上)
54 0