字符串的复制,链接,比较大小以及求字符串长度

字符串相关操作

一、字符串复制
定义函数Mystrcpy,并且定义两个字符数组的变量,目标字符串des,源字符串src
将源字符串赋值给定义的目标字符串,完成字符串的复制。

#include <stdio.h>
#include <string.h>
void Mystrcpy(char des[],char src[])
{
    int i;
    for(i=0;i<src[i]!='\0';i++)
    {
        des[i]=src[i];
    }
    des[i]='\0';
}
int main()
{
    char arr[]="abcd";
    char brr[10]="xyz";
    char crr[10];
    Mystrcpy(crr,brr);
    printf("%s\n",crr);
    return 0;
}

运行结果如图
在这里插入图片描述

二、字符串的长度
定义关于字符串长度的函数Mystrlen,从主函数中输入字符串,输出字符串的函数

#include <stdio.h>
#include <string.h>
int  Mystrlen(char str[])
{   
    int i;
    for(i=0;str[i]!='\0';i++)
    {
        ;
    }
    return i;
}
int main()
{
    char str1[]="abcd";
    printf("%d\n",Mystrlen(str1));
    return 0;
}

运行结果如图
在这里插入图片描述

三、字符串的链接
返回目标字符串的首地址,des+=src,“abc”,“xyz”—>“abcxyz”

#include <stdio.h>
#include <string.h>
#include <assert.h>
char *Mystrcat(char *des,const char *src)
{
    assert(des!=NULL&&src!=NULL);
        if(des==NULL||src==NULL)
            return NULL;
        char *p= des;
        while(*des!='\0')
            des++;
        while(*des++=*src++);
        return des;
}
int main()
{
    char str1[100]="abc";
    char str2[100]="xyz";
    char *p=Mystrcat(str1,str2);
    printf("%s\n",str1);
    printf("%s\n",p);
    return 0;
}

运行结果如图
在这里插入图片描述

四、字符串大小比较
如果第一个大返回大于0的数字,相等返回0,第一个小返回小于0的数字
如"abc"<“x”,“abcd”>“abc”,“abc”=“abc”

#include <stdio.h>
#include <string.h>
#include <assert.h>
int Mystrcmp(const char *str1,const char *str2)
{
    assert( str1!=NULL && str2!=NULL);
        if( str1==NULL || str2==NULL)
        {
            return 0;
        }
        int tmp;//保存当前两个字符的差值
        while((tmp=*str1-*str2)==0 && *str1!='\0')
        {
             str1++;
             str2++;
        }
        return tmp;
}
int main()
{
    //char str1[]="abcd";
    //char str2[]="abc";
    printf("%d\n",Mystrcmp("abcd","abc"));
    return 0;
}

运行结果如图
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值