字符串翻转集合, case1, hello world->world hello; case2, hello world->olleh dlrow

Case1: 从hello world 翻转成 world hello

/*大概的理念是先把所有字符串都翻转了,所以hello world 编程dlrow olleh. 然后再每个字符之间翻转,变成world hello(以空位为分界点)*/

Case2: 从hello world翻转成olleh dlrow

/*大概的理念是以空格为分界点,每个字符串之间翻转*/

void reverseWords(char str[])
{
if (!str) return;
int cur=0, start =0;
while(str[cur])
{
if(str[cur]==SPECIAL_CHAR||str[cur]== "  ")
{
cur=cur-1;
reserver(str, start, cur);
start=cur+1;
}
cur++;
}
}
void reverse(char *str, int beg, int end)
{
while(beg<end)
{
char temp=str[beg];
str[beg]=str[end];
str[end]=temp;
beg++;
end--;
}
}

考察三个方面,一是对指针和字符串的理解,二是是否进行合法性检查,例如输入参数为空指针时是否进行检查,三是返回值是否是恰当

char *revstr(char *str, size_t len)
{

    char    *start = str;
    char    *end = str + len - 1;
    char    ch;

    if (str != NULL)
    {
        while (start < end)
        {
            ch = *start;
            *start++ = *end;
            *end-- = ch;
        }
    }
    return str;
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值