作业7.12

主函数:

/**************主函数***************/
int main()
{
    char str[100]="";
    char dest[100]="";
    printf("输入字符串str:");
    gets(str);
    printf("输入字符串dest:");
    gets(dest);
    printf("my_strlen(str) = %d\n",my_strlen(str)); 
    int n=my_strcmp(str,dest);                      
    if(n>0)
    {
        printf("str大\n");
    }
    else if(n<0)
    {
        printf("dest大\n");
    }
    else
    {
        printf("一样大\n");
    }
    my_strcat(str,dest);
    printf("调用my_strcat后,str = %s, dest = %s\n",str,dest);
    printf("调用my_strstr后的结果:%s\n",my_strstr(str,dest));
    my_strcpy(str,dest);
    printf("调用my_strcpy后,str = %s, dest = %s\n",str,dest);
    
    return 0;
}
1> 自定义函数(my_strlen)实现strlen函数的功能 
//自定义函数(my_strlen)实现strlen函数的功能
int my_strlen(const char *str)
{
    if(*str=='\0')
    {
        return 0;
    }
    else
    {
        return 1+my_strlen(str+1);
    }  
}
2> 自定义函数(my_strcpy)实现strcpy函数的功能 
//自定义函数(my_strcpy)实现strcpy函数的功能
void my_strcpy(char * str,const char * dest)
{
    while (*str || *dest)
    {
        *str++=*dest++;
    }    
}
3> 自定义函数(my_strcmp)实现strcmo函数的功能 
int my_strcmp(const char * str,const char * dest)
{
    int diff=0;
    while (diff==0)
    {
        diff=*str++ - *dest++;
    }

    return diff;
}
4> 自定义函数(my_strcat)实现strcat函数的功能 
//自定义函数(my_strcat)实现strcat函数的功能
void my_strcat(char * str,const char * dest)
{
    while (*dest)
    {
        if (*str=='\0' && *dest!='\0')
        {
            *str++=*dest++;
        }
        else
        {
            str++;
        }
    }
}
5> 自定义函数(my_strstr)实现strstr函数的功能 
//自定义函数(my_strstr)实现求src字符串中第一次出现子串dest字符串的位置
char * my_strstr(const char * str,const char * dest)
{
    char * p=NULL;
    char * q=dest;
    while (*str)
    {
        while (*str)
        {
            if(*str==*q)
            {
                p=str;
                str++;
                q++;
                break;
            }
            str++;
        }
        while (*str)
        {
            if(*str==*q)
            {
                q++;
                str++;
            }
            else
            {
                break;
            }
        }
        if (*q=='\0')
        {
            return p;
        }
        q=dest;
    }
    
    return NULL;
}
结果:

 

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值