1. 实现字符串拷贝函数,把一个指定的字符串复制到指定的字符数组或字符指针中。该函数返回指向复制后的字符串的指针。用指针和数组实现保存为 1.cpp
#include<iostream>
#include<cassert>
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<dest && dest<(src+src_len))   
    {
        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:"<<endl;
    cin>>src;
    cout<<"拷贝后,dest中的字符串为:"<<endl;
    cout<<my_strcpy(src,dest)<<endl;
}
2. 实现字符串比较函数,该函数的功能是对两个字符串进行比较,并返回其比较结果,即一个int型数。用指针和数组实现保存为 2.cpp
#include<iostream>
#include<cmath>
#include<cassert>
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<<i<<endl;
}
3.实现字符串检索函数,该函数的功能是用来检索在一个指定的字符串中第一次出某个指定字符的位置。用指针和数组实现保存为 3.cpp
#include<iostream>
#include<cassert>
using namespace std;
char *my_strchr(char *str,char ch)
{
    while((*str!=ch) && (*str!='\0'))
        str++;
    if('\0'==*str)
字符串拷贝函数strcpy作用        return NULL;
    else
        return str;
}
void main()
{
    char str1[]="abcefbee";
    char *p=my_strchr(str1,'a');
    assert(p!=NULL);
    cout<<p<<endl;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。