使用C语言怎么实现一个字符函数功能

  介绍

本篇文章给大家分享的是有关使用C语言怎么实现一个字符函数功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

C语言字符函数,内存函数功能及实现strlen函数(求字符串长度)注意点模拟实现拷贝字符串函数(字符串拷贝函数)注意点模拟实现strcat函数(字符串衔接函数)注意点模拟实现比较字符串函数注意点模拟实现strstr函数模拟实现strtok函数使用strerror函数使用memcpy函数注意点模拟实现memmove函数注意点模拟实现memset函数注意点

strlen函数(求字符串长度)

统计字符串长度直到\ 0为止

注意点

1,属于& lt; string.h>库
2,参数为字符串,返回类型为无符号整型,特别注意下图
此图运行结果为祝辞,因为无符号整型加减必为大于0的数,所以此类比较需要避免
3,结束标志为\ 0

使用C语言怎么实现一个字符函数功能

模拟实现

int  my_strlen (const  char  * str) {   维护才能(str);   如果才能(* str==& # 39; \ 0 & # 39;) {   ,,,return  0;   ,,}   return 才能;1,+,my_strlen(时间+ str  1);//采用递归方式   }

拷贝字符串函数(字符串拷贝函数)

将sorc数组内第一个\ 0前(包括\ 0)的所有内容拷贝到桌子数组。

注意点

1,桌子数组需要足够容纳源数组
2,源数组一定要有\ 0作为中止标识
3,桌子数组要可以更改
4, \ 0会被拷入

模拟实现

char  * my_strcpy (char  *桌子,const  char  * sorc)   {   维护才能(dest ,,, sorc);   char 才能;* ret =,桌子;   while 才能;(*桌子+ +,=,* sorc + +)//当/0被最后一次拷入时,跳出循环   {才能   ,,,,   ,,}   return 才能;回收;   }

strcat函数(字符串衔接函数)

从桌子数组的第一个\ 0开始将sorc函数内第一个\ 0前的全部内容拷贝,桌子函数的第一个\ 0会被覆盖,sorc函数的\ 0会被拷入。

注意点

1,桌子数组要足够容纳自身和源数组
2,桌子数组必须空间可修改
3,桌子,源数组都有\ 0
4,不可以自己拷贝自己,因为没有中止条件

模拟实现

char  * my_strcat (char  *桌子,const  char  * sorc)   {   char 才能;* ret =,桌子;   while 才能;(* dest  !=, & # 39; \ 0 & # 39;)   {才能   ,,,桌子+ +;   ,,}   while 才能;(*桌子+ +,=,* sorc + +)   {才能   ,,,,   ,,}   return 才能;回收;   }

比较字符串函数

比较两个字符串,逐位比较,若对应位不相同则返回ASCII码相减的值,若每一位相同(即整个字符串相同)返回0。

注意点

1,比较的不是长度,而是对应位置的ASCII码值

模拟实现

int  my_strcmp (const  char  * str1, const  char  * str2)   {   维护才能(str1 ,,, str2);   while 才能;(* str1 ==, * str2)   {才能   ,,,if  (* str1 ==, & # 39; \ 0 & # 39;,,,, * str2 ==, & # 39; \ 0 & # 39;)   ,,,{   ,,,,,return  0;   ,,,}   ,,,str1 + +;   ,,,str2 + +;   ,,}   return 才能;* str1 作用;* str2;   }

strstr函数

在母串中寻找子串,若找到则返回母串中子串的首地址,若没找的则返回空指针

模拟实现

此处使用暴力方法求解,公里算法可提供更优解

char  * my_strstr (char  *妈妈,,char  *孩子)   {   维护才能(mum ,,,孩子);   const 才能;char  * pc =,妈妈;   while 才能;pc (*)   {才能   ,,,const  char  * p1 =,电脑;   ,,,const  char  * p2 =,孩子;   ,,,while  (* p1 ==, * p2 ,,, * p1 ,,, * p2)   ,,,{   ,,,,,p1 + +;   ,,,,,p2 + +;   ,,,}   ,,,if  (* p2 ==, & # 39; \ 0 & # 39;)   ,,,{   ,,,,,return  (char  *)电脑;   ,,,}   ,,,电脑+ +;   ,,}   return 才能;零;   }

strtok函数

1,两个参数(arr源字符串,9月符号字符串(切割标志))
2,希望得到第二个字符串时候需要传入空指针

使用C语言怎么实现一个字符函数功能

使用C语言怎么实现一个字符函数功能