题目

  1. 实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ;

思路
功能实现:针对字符串的操作,即str系列接口的原理的实现。

代码

#include <stdio.h>
#include <stdlib.h>
char* mystrcpy(char *to,char *from)
{
    int i=0;
    while(from[i])
    {
        to[i]=from[i];
        i++;
    }
    to[i]=0;//或to[i]='\0';
    return to;
}

int mystrlen( char *str )
{
    int i=0;
    while(str[i])
    {
        i++;
    }
    return i;
}

int mystrcmp(char *str1,char *str2)
{
    int i=0;
    while(str1[i])
    {
        if(str1[i]!=str2[i])
            break;
        i++;
    }
    return str1[i]-str2[i];
}

char* mystrcat(char *str1,char *str2)
{
    int i=mystrlen(str1);
    int j=0;
    while(str2[j])
    {
        str1[i]=str2[j];
        i++;
        j++;
    }
    str1[i]=str2[j];
    return str1;
}

int main()
{
    char c[20]="hello";
    char d[10];
    mystrcpy(d,c);
    puts(d);
    printf("%d\n",mystrlen(d));
    printf("cmp=%d\n",mystrcmp("hello","hello"));
    printf("%s\n",mystrcat(c,"world"));
    system("pause");
}

执行结果
图片说明