为什么这个地方要这样!!

三年悔悟 2008-03-20 11:06:33
大家看看初学者了这段代码我有问题要问题:
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输入字符");
string wu = Console.ReadLine();
Console.WriteLine("输入个数{0}", wu.Length);
string kgdleeq="";
for (int a = wu.Length-1; a>=0; a--)
{
kgdleeq += wu[a];
}
Console.WriteLine("输出相反字符{0},反回多少个数{1}", kgdleeq,kgdleeq.Length);
Console.ReadKey();
}
}
}
其他地方都看的懂就是 for(int a=wu.Length-1;a>=0;a--)
{
kgdleeq += wu[a];
}
看不懂啊,为什么要int a=wu.Length-1才能使字符相反了,我是实在搞不明白这原理。大家帮我解答一下,谢谢
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
davidxu1969 2008-03-21
  • 打赏
  • 举报
回复
数组下标是从零开始的
如果Length=3,反过来就是[2],[1],[0]
所以要从Length-1开始。
三年悔悟 2008-03-21
  • 打赏
  • 举报
回复
感谢上面了朋友的解答,虽然不怎么好,不过还是谢谢你们!我有点明白了,wu.Length-1,Length是代表你输入的多少个数,比如我输入123,说明我输入三个,应该就是这样,从wu.3-1到wu.2-1在到wu.1-1,然后a--,从后面输出变成321.

真感觉自已不是学计算机了料,别人一看就懂,为什么我总是学不好,真想放弃,不过我在学校是学这个了,不得不学的!!
dancingbit 2008-03-20
  • 打赏
  • 举报
回复
开玩笑,不用-1,不怕越界?
dancingbit 2008-03-20
  • 打赏
  • 举报
回复
这一句:kgdleeq += wu[a];

wu后面不要加.Chars吗?至于int a=wu.Length-1,是使a指向最后一个字符的位置。
骄傲青蛙 2008-03-20
  • 打赏
  • 举报
回复
a=wu.Length-1;a>=0

----------------
后面的a>=0把0也算进去了
如果是a>0 就不用-1了
----------------
纯属是数组问题,看来楼主多了解一下
我是瓶起子 2008-03-20
  • 打赏
  • 举报
回复
努力努力,加油努力~~~成功就在眼前

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧