曲径通幽论坛

标题: 字符串的倒序输出 [打印本页]

作者: easy    时间: 2014-5-12 11:49
标题: 字符串的倒序输出
下面程序演示了字符串的倒序输出:
  1. @echo off
  2. :star
  3. set Output=
  4. set /p Enter=请输入:
  5. :Start
  6. if not "%Enter%"=="" (
  7. set Output=%Output%%Enter:~-1%
  8. set Enter=%Enter:~0,-1%
  9. goto :Start)
  10. echo.
  11. echo        %Output%
  12. pause >nul&goto :Star
复制代码
程序要求你输入一个字符串,它倒序输出来,比如你输入 abcdefg,程序输出 gfedcba 。它的处理流程是:
先将输入字符串存入 Enter 变量,然后截取字符串末尾字符赋值给 Output 变量,Enter 变量删掉最后那个字符,回头判断 Enter 变量是否为空,不为空则继续移动。

Enter :   abc
Output : c
Enter : ab

Enter : ab
Output : cb
Enter : a

Enter a
Output cba
Enter 为空


最后输出 Output 的值 cba 。

set Output=%Output%%Enter:~-1% 这一句中,体现了变量的连接(%Output%%Enter:~-1%),其中每次取 Enter 末尾的那个字符连接到 Output 上。字符串截取语法参考:《 字符串截取:%a:~m,n%

set Enter=%Enter:~0,-1% 这句每次将 Enter 最后的那个字符去掉。

由于 pause 执行时,会提示 “请按任意键继续...”,这里不像它有这个输出,故而使用了 > nul 。

当程序倒序输出后,再次要求你重新开始输入。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2