第1个回答 2020-04-24
首先来分析下你的代码
第一处错误for(;i>j;i--,j--),在这里你的j是赋的初值是0,再--,这不是你想要的吧,细心点。
第二处错误,我们知道用字符数组接收字符串的时候,系统会在最后自动加上空字符'\0'以标志字符串结束,当采用你的程序交换时,没有考虑空字符,会连同空字符一起与前面的字符交换,你的i是从9开始减,而你定义的字符数组是str[10],所以交换后最后一个字符肯定是你输入的第一个字符,而不是一个空字符,当你用puts()输出字符串后,就会出现错误了。
解决:在头文件加上
#include<string.h>
//调用处理字符串的函数的需要
再给i赋初值改为
int
i=strlen(str)-1
//-1原因是数组从str[0]开始的,strlen()
//作用就不用我说了吧
再把for语句中j--改成j++就OK了
也可以用指针来做的,自己试试吧,不过也大同小异