Augenstern... 2022-02-25 00:35 采纳率: 75%
浏览 52
已结题

pta说反话加强版 按照其他人的代码写总是编译错误,听CSDN上的建议改了gets函数结果还是报错,试了几个代码都是一样,为什么啊

因为我不会写这个代码就在CSDN搜了其他人写的,没看懂,然后想着先试一个正确答案出来再慢慢研究,结果就发现gets函数被弃用,然后按照其他人的建议改成了fgets函数,结果编译器还是报错,然后又分别改成了gets_s函数也没用,希望各位可以帮忙看看为什么,顺便给我讲解一下这个题目🙏

img

img

img

#include<stdio.h>
#include<string.h>
int main()
{
    char c[500001], word[250001];
    int j = 0, flag = 0;
    gets(c);
    for (int i = strlen(c) - 1; i >= 0; i--)
    {
        if (c[i] == ' ')
        {
            flag++;
            word[j] = '\0';
            if (flag == 1)
            {
                for (int k = strlen(word) - 1; k >= 0; k--)
                    printf("%c", word[k]);
                if (strlen(word))
                    for (int k = i; k >= 0; k--)  //防止前面都是空格
                        if (c[k] != ' ')
                        {
                            putchar(' ');
                            break;
                        }
            }
            j = 0;
        }
        else
        {
            word[j++] = c[i];
            flag = 0;
        }
    }
    word[j] = '\0';
    for (int k = strlen(word) - 1; k >= 0; k--)
        printf("%c", word[k]);

    return 0;
}


  • 写回答

2条回答 默认 最新

  • 谛凌 2022-02-25 00:56
    关注

    为啥不用scanf读取字符串嘞?
    内容明天再看吧,先睡了hhh

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月26日
  • 已采纳回答 2月26日
  • 修改了问题 2月25日
  • 创建了问题 2月25日