实现字符串拷贝函数,把一个指定的字符串复制到指定的字符数组或字符指针中。返回指向复制后字符串的指针。
- 格式:doc
- 大小:30.50 KB
- 文档页数:5
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<