-
- @echo off
- setlocal enabledelayedexpansion
- set str1=!好你,nc.emohtab.sbb
- set /a n=0
- :loop
- set str2=!str1:~%n%,1!%str2%
- set /a n+=1
- if "!str1:~%n%,1!" neq "" goto loop
- echo 原字符串为: %str1%
- echo 倒序后字符串为:%str2%
- pause>nul
复制代码
题目是可以完成了,但是遇到几个不明白的地方,希望高人指点一二。
第一:如果字符串中的感叹号换成英文输入法下的感叹号,上面的代码就不显示感叹号了,请问如何解决,尝试过楼上高手的代码,用set /p是可以输出英文感叹号的,为什么呢?
第三:如果将以上代码改一下,换成下面的
@echo off
setlocal enabledelayedexpansion
set str1=!好你,nc.emohtab.sbb
:loop
set /a n+=1
set str2=%str2%!str1:~-%n%,1!
if "!str1:~-%n%,1!" neq "" goto loop
echo 原字符串为: %str1%
echo 倒序后字符串为:%str2%
pause>nul
这个代码就不会停止,请教是何道理?
只不过取字符的方向换了下而已啊。 |