Eetu_3 2023-03-01 19:59 采纳率: 100%
浏览 39
已结题

关于#c语言#的问题,请各位专家解答!

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/484629176776167.png "#left"
例子
输入 i am a boy
输出 boy a am i

  • 写回答

3条回答 默认 最新

  • Huazie 优质创作者: 编程框架技术领域 2023-03-01 20:10
    关注
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    //一句话的单词倒序输出  
    void reverse(char *left,char *right)
    {
        char temp = 0;
        while (left < right) {
            temp = *left;
            *left = *right;
            *right = temp;
            left++;
            right--;
        }
    }
     
    int main()
    {
        char arr[100] = { 0 };
        gets(arr);
        //整体倒置
        int len = strlen(arr);
        reverse(arr, arr + len - 1);
    
        printf("%s\n", arr);
    
        //每个单词逆序
        char* start = arr;
        while (*start)
        {
            char* end = start;
            while (*end != ' ' && *end != '\0')
            {
                end++;
            }
            reverse(start,end -1);
            if (*end == ' ')
                start = end + 1;
            else
                start = end;
        }
        printf("%s\n", arr);
     
        return 0;
    }
    

    如有帮助,欢迎点赞+采纳哈!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 修改了问题 3月1日
  • 修改了问题 3月1日
  • 展开全部