网易笔试题 -字符处理

#include <stdio.h>
#include <string.h>


/*
   把字符串整体reverse
 */
void _reverse(char *begin, char *end)
{
    while(end > begin){
        char tmp = *end;
        *end = *begin;
        *begin = tmp;

        begin ++;
        end --;
    }
}


/*
   实现
 */
void reverse(char *str)
{
    if(str == NULL) return;
    char *end = str + strlen(str);
    end--;

    char *firstdot;
    char *seconddot;

    _reverse(str, end);//先整体_reverse

    firstdot = strchr(str, '.');
    seconddot = strchr(firstdot+1, '.');

    _reverse(str, firstdot-1);//_reverse第一个'.'之前的部分
    _reverse(firstdot+1, seconddot-1);//_reverse两个'.'之间的部分
    _reverse(seconddot+1, end);//_reverse第二个'.'之后的部分
}



int main()
{
    char a[] = "www.google.com";
    char b[] = "mail.netease.com";
    reverse(a);
    printf("%s\n", a );

    reverse(b);
    printf("%s\n", b );

    return 0;
}
   函数实现将网址进行如下操作
www.google.com转成com.google.www 及mail.netease.com转成com.netease.mail

不允许用STL,空间为0(1)

void reverse(cha * ptr){}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值