gpt4 book ai didi

c# - C#反名练习如何理解?

转载 作者:太空宇宙 更新时间:2023-11-03 22:45:33 25 4
gpt4 key购买 nike

我试图弄清楚这段代码是如何一步步执行的,以便更好地理解它。你在控制台中输入一个词,它会以相反的方式吐出这个词。

我可以按照代码直到到达 array[name.Length - i] = name[i - 1];

var array = new char[name.Length];
for (var i = name.Length; i > 0; i--)
array[name.Length - i] = name[i - 1]; <------

我不明白这一行代码的步骤是如何翻译的。为什么我们从 name.Length 中减去 1,然后再减去 i 代表的它本身?从 name[i - 1] 中的 i 中减去 1 会完成什么?

最佳答案

循环从i开始,等于name的长度,每次迭代从i中减1。

因此在第一次迭代中,name.Length - i 等于 0,而 i-1 等于 name.Length -1。< br/>在下一次迭代中,name.Length - i 等于 1,而 i-1 等于 name.Length -2,依此类推。

通过将 name[x] 中的字符分配给 array[y],循环将 name 数组中的每个字符复制到array 数组 - 所以在循环结束时,array 数组恰好是 name 数组的反向副本。

我整理了一个 small demo on rextester ,所以您可以看到它正在运行。

请注意,这不是反转字符串的最佳方式,尤其是在非英语语言中。某些语言使用由多个字符组成的字母,例如法语中的重音符,使用 Ç、é、â、ê、î、ô、û、à、è、ù、ë、ï 和ü.

对于这些 languanges,简单地按 char 反转 char 将导致重音位于错误字母上的字符串。要获得正确的字符串反转,请查看 R. Martinho Fernandes 的 answerthis SO post .

关于c# - C#反名练习如何理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50111530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com