云淡风轻~~ 2017-09-02 07:24 采纳率: 100%
浏览 1200
已采纳

c语言中,关于反转字符串。请问为什么输入ABCDE,不能反转。

#include

int main()
{
int i;
char String[20];
char Reverse[]={0};
printf("请输入字符串");
gets(String);
printf("你所输入的字符串为%s\n",String);
int size;
size=sizeof(String);

for(i=0;i<size-1;i++)
{
    Reverse[size-i-2]=String[i];
}

printf("输出源字符串:%s\n",String);
printf("输出目标字符串:%s\n",Reverse);

return 0;

}

  • 写回答

6条回答 默认 最新

  • 战在春秋 2017-09-02 08:06
    关注

    修改后的代码如下,关键处有注释:

     int main()
    {
        int i;
        char String[20];
        char Reverse[20] = { 0 };  //原代码Reverse大小为1
        printf("请输入字符串");
        gets_s(String);
        printf("你所输入的字符串为%s\n", String);
        int size;
        size = strlen(String); //用strlen库函数获取输入字符串的长度,需包含string.h头文件
    
        for (i = 0; i < size ; i++) //循环终止条件及循环体写法应修改为此
        {
            Reverse[size-i-1] = String[i];
        }
        printf("输出源字符串:%s\n", String);
        printf("输出目标字符串:%s\n", Reverse);
    
        return 0;
    
    }
    

    如果对您有帮助,请采纳答案好吗,谢谢!

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

报告相同问题?