实现字符串拷贝函数,把一个指定的字符串复制到指定的字符数组或字符指针中。返回指向复制后字符串的指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 实现字符串拷贝函数,把一个指定的字符串复制到指定的字符数组或字符指针中。该函数返回指向复制后的字符串的指针。用指针和数组实现保存为1.cpp
#include
#include
using namespace std;
char * my_strcpy(char *src, char *dest)
{
char *d = dest; //backup input
char *s = src;
int src_len = 0;
assert(dest); //非空指针检查
assert(src);
src_len = strlen(src) + 1;//src length
if(src == dest) //src 与dest起始地址一样,不用拷贝,直接返回src return src;
else if(src { d=dest+src_len; s=src+src_len; while(src_len--) *d--=*s--; //倒拷贝 } else { while(src_len--) *d++=*s++; //正拷贝 } return dest; } void main() { char src[20]; char dest[40]; cout<<"please input a string to src:"< cin>>src; cout<<"拷贝后,dest中的字符串为:"< cout< } 2.实现字符串比较函数,该函数的功能是对两个字符串进行比较,并返回其比较结果,即一个int型数。用指针和数组实现保存为2.cpp #include #include #include using namespace std; int my_strcmp(char* s1, char* s2) { assert(s1!=NULL || s2!=NULL); if(*s1!=*s2) return (*s1-*s2)/abs(*s1-*s2); while((*s1==*s2) &&(*s1!='\0')) { s1++; s2++; } if(*s1==*s2) return 0; else return (*s1-*s2)/abs(*s1-*s2); } void main() { char str1[]="abc"; char str2[]="ae"; int i=my_strcmp(str1,str2); cout< 3.实现字符串检索函数,该函数的功能是用来检索在一个指定的字符串中第一次出某个指定字符的位置。用指针和数组实现保存为3.cpp #include #include using namespace std; char *my_strchr(char *str,char ch) { while((*str!=ch) && (*str!='\0')) str++; if('\0'==*str) return NULL; else return str; } void main() { char str1[]="abcefbee"; char *p=my_strchr(str1,'a'); assert(p!=NULL); cout<