/*
 strlen,strcpy,strcmp,strcat的实现
*/

#include<stdio.h>

int strlen_(const char *s);
char *strcpy(char *dest, const char *src);
int strcmp(const char *s1, const char *s2);
char *strcat(char *dest, const char *src);

int main(void)
{
    char a[80]="world";
    char b[80]="test";
    int strlen_a, strlen_b;
    int bors;
    char *cpy , *cat;

    strlen_a = strlen_(a);
    strlen_b = strlen_(b);
    bors      = strcmp(a, b);

    printf("数组a长:%d\n",strlen_a);
        printf("数组b长:%d\n",strlen_b);
        printf("数组a,b之间差:%d\n",bors);
        cat      = strcat(a, b);
    printf("将a,b合并%s\n",cat);
    

  cpy     = strcpy(a, b);
    printf("将b赋给a:%s\n",cpy);




return 0;

}

int strlen_(const char *s)
{
    int i;
    for(i = 0; s[i] != '\0' ; i++);
    
return i+1;

}


char *strcpy(char *dest, const char *src)
{
        int i = 0;
        while(src[i])   {
                dest[i] = src[i];
                i++;
        }
        dest[i] = '\0';

return dest;
}

int strcmp(const char *s1, const char *s2)
{
    int i = 0;

    while(s1[i] == s2[i])    {
        if(!s1[i])
            return 0;
        i++;
    }
    
    return (s1[i] - s2[i]);

}

char *strcat(char *dest, const char *src)
{
    int i = 0;

    while(dest[i])
    i++;
    
    strcpy(dest + i, src);

return dest;
}

posted on 2019-01-21 19:03  seraph墨  阅读(75)  评论(0编辑  收藏  举报