如何反转字符串?C语言从入门到入土(进阶篇)(算法篇p3)

本文阅读 1 分钟
首页 代码,C/C#/C++ 正文

谁都不能阻挡你成为更优秀的人。

废话不多说,解释都在里面哈。

首先是思路(这里只是两个单词,多个一样的哈):

img

然后是代码: 

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

void reverse_my(char* left, char* right)
{
    while (left < right)
    {
        char tmp = *right;
        *right = *left;
        *left = tmp;

        left++;
        right--;
    }
}

int main()
{
    char arr[100] = { 0 };
    gets(arr);

    //反转字符串
    reverse_my(arr, arr + strlen(arr) - 1);

    //反转每个单词
    char* start = arr;
    //因为不止一个单词 所以要while循环往后走
    while (*start)
    {
        char* end = start;
        //中间的一段都是空格分割,最后是字符串结束标志'\0'。
        while (*end != ' ' && *end != '\0')
        {
            end++;
        }
        reverse_my(start, end - 1);

        //最后判断  不是\0就往后走  是\0就 *start == 0 外面的while语句结束循环
        if (*end)
        {
            start = end + 1;
        }
        else
        {
            start = end;
        }

    }
    printf("%s", arr);
    return 0;
}

img

因为作者发现算法篇还是一题一题发会让大家知道里面写的是什么会让读者们更清楚自己想不想看,所以之后的算法篇可能就按这样发哈!

最后:感谢你的观看!

          感谢你的支持!

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_62700590/article/details/121614315
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复