[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
2# Demon


能用for的地方建议不用call或goto,思路还有拓展的空间,不妨进一步展开想象。

TOP

本帖最后由 Demon 于 2011-5-31 20:16 编辑

第二题无法证明,“发 云 昆 巨 资 戚”这几个字不是重复了么?
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. FOR /F "delims=" %%i IN (千字文.txt) DO CALL :check %%i
  4. PAUSE & GOTO :EOF
  5. :check
  6.     SET str=%*
  7.     SET str=%str: =%
  8.     :check_loop
  9.     IF "%str%" NEQ "" (
  10.         SET c=!str:~0,1!
  11.         SET str=!str:~1!
  12.         IF DEFINED dic[!c!] CALL ECHO %%dic[!c!]%% 重复
  13.         SET dic[!c!]=!c!
  14.         GOTO :check_loop
  15.     )
  16. GOTO :EOF
复制代码
2

评分人数

TOP

本帖最后由 Demon 于 2011-5-31 19:58 编辑

第一题
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. FOR /F "delims=" %%i IN (千字文.txt) DO CALL :strlen %%i
  4. ECHO %n%
  5. PAUSE & GOTO :EOF
  6. :strlen
  7.     SET str=%*
  8.     SET str=%str: =%
  9.     :strlen_loop
  10.     IF "%str%" NEQ "" (
  11.         SET /A n += 1
  12.         SET str=!str:~1!
  13.         GOTO :strlen_loop
  14.     )
  15. GOTO :EOF
复制代码
1

评分人数

    • zm900612: 第一个螃蟹,鼓励一下PB + 12

TOP

返回列表