C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现_第1页
C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现_第2页
C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现_第3页
C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现目录strlenstrcpystrcmpstrcatstrstr前言:

今天来实现strlen、strcpy、strcmp、strcat、strstr三个比较常见的字符串操作函数,具体实现如下。

strlen

C库函数size_tstrlen(constchar*str)计算字符串str的长度,直到空结束字符,但不包括空结束字符。

intmy_strlen(constchar*p){

intsize=0;

//找到末尾停止

while(*p!='\0'){

p++;

size++;

returnsize;

}

strcpy

C库函数char*strcpy(char*dest,constchar*src)把src所指向的字符串复制到dest。需要注意的是如果目标数组dest不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

char*my_strcpy(char*dest,constchar*src){

//判断传入是否为空

if(src==NULL||dest==NULL){

returndest;

char*pdest=dest;

//不为空打印

while(*src!='\0'){

*pdest=*src;

pdest++;

src++;

//末尾加'\0'

*pdest='\0';

returndest;

}

strcmp

C库函数intstrcmp(constchar*str1,constchar*str2)把str1所指向的字符串和str2所指向的字符串进行比较。

intmy_strcmp(constchar*str1,constchar*str2){

//一直往后查找直到其中一个结尾或者他们二者不相等为止

while(*str1!='\0'*str2!='\0'(*str1==*str2)){

str1++;

str2++;

return*str1-*str2;

}

strcat

C库函数char*strcat(char*dest,constchar*src)把src所指向的字符串追加到dest所指向的字符串的结尾。

char*my_strcat(char*dest,constchar*src){

char*pdest=dest;

//pdset先走到末尾

while(*pdest!='\0'){

pdest++;

//链接

while(*src!='\0'){

*pdest=*src;

pdest++;

src++;

//加结尾标志'\0'

*pdest='\0';

returndest;

}

strstr

C库函数char*strstr(constchar*haystack,constchar*needle)在字符串haystack中查找第一次出现字符串needle的位置,不包含终止符\0。

char*my_strstr(constchar*dest,constchar*src){

//断言非空

assert(destsrc);

while(*dest!='\0'){

//记录destsrc初始位置

char*pdest=dest;

char*psrc=src;

//若相等则继续比较

while(*pdest==*psrc||*psrc=='\0'){

//如果psrc=='\0'则说明找到子串

if(*psrc=='\0'){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论