字符串相关操作—— 复制、翻转、比较等(C语言实现)

  • 字符串复制

算法实现:将字符串中的字符逐个复制赋值,遇到 '\0' 结束

char *strcpy(char *dst,const char *str)
{
    
    if((NULL == dst)||(NULL == str))
    {
        return NULL;
    }
    
    char *ret = dst;
    while(*str != '\0')
    {
        *dst++ = *str++;
    }

    return ret;
}

 

  • 字符串翻转

算法实现:将字符串一一分为二,前后互换位置即可

void reserve_str(char *str)
{
    int i,len;
    char temp;

    if(NULL == str)
    {
        return ;
    }
    len = strlen(str);

    for(i = 0; i < len/2;i++)
    {
        temp = str[i];
        str[i] = str[len-i-1];
        strlen[len-i-1] = temp;
    }
}

 

  • 字符串比较(常规比较)

实现逻辑:先判断字符串长度是否相等,若相等逐个比较字符

int m_strcmp(char *dst,char *str)
{
    int i,len;

    if((NULL == dst)||(NULL == str)){
        return 0;}
    if(strlen(dst) != strlen(str)){
        return 0;}

    len = strlen(dst);
    
    for(i = 0;i < len;i++)
    {
        if(*dst++ != *str++)
        {
            return 0;    
        } 
    }
    return 1;
}

 

  • 字符串比较(忽略大小写)

实现逻辑:在判断两字符串长度是否相等之后,在比较前,将其转换为统一大小写后再进行比较

#define CONVERT(c)  (((c)>= 'A'&&(c) <='Z')?(c)-'A'+'a':(c)) 

int m_strcpy(char *dst,char *str)
{
    int i,len;

    if((NULL == dst)||(NULL == str)){
        return 0;}
    if(strlen(dst) != strlen(str)){
        return 0;}
    
    len = strlen(dst);

    for(i = 0; i < len;i++)
    {
        if(CONVERT(*dst) != CONVERT(*str))
        {
            return 0;
        }
        dst++;
        str++;
    }
    
    return 1;

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值