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

批处理编程挑战题“物以类聚”-将字母按大小写归并

[问题]
给你一个字符串,只由大小写字母构成。比如字符串:aAbBD,请将所有小写字母移到左端,大写移到右端,形成这种格式:abABD。也就是原字符串中小写a在小写b前面,移动后小写a仍然在小写b的前面,原字符串中大写A在大写B前面,移动后大写A仍然在大写B前面。

要求:不限编程语言(但最好是用批处理去完成才有挑战性),只要能实现这种移动效果就行。你可以拿字符串 bBAathToHOMmEe 做测试,移动后应该输出为 bathomeBATHOME。

[示例]
CMD脚本
  1. @echo off
  2. set str=bBAathToHOMmEe
  3. for %%A in (#A,#B,#C,#D,#E,#F,#G,#H,#I,#J,#K,#L,#M,#N,#O,#P,#Q,#R,#S,#T,#U,#V,#W,#X,#Y,#Z) do (
  4. set %%A=%%A
  5. )
  6. setlocal enabledelayedexpansion
  7. :cut
  8. set letter=!str:~0,1!
  9. for %%a in (!letter!) do (
  10. if "#%%a"=="!#%%a!" (
  11. set uprstr=!uprstr!%%a
  12. ) else (
  13. set lowstr=!lowstr!%%a
  14. )
  15. )
  16. set str=!str:~1!
  17. if "!str!"=="" (set/p=%lowstr%%uprstr%&exit)
  18. goto :cut
复制代码

回复 2# 523066680
能来个批处理版吗,我想看看你怎么处理大小写。

TOP

回复 6# 老刘1号
用纯批试试

TOP

回复 3# pcl_test
拼的好精致

TOP

回复 9# 523066680
批处理的坑太多。

TOP

回复 19# 523066680
顾森,北京大学中国语言文学系应用语言专业07级本科生,Matrix67博客作者。Matrix67名字来源:“有一次申请邮箱,matrix这个id被人占用了,于是我就开始往后面加数字。”试过123,试过456,直到67才最终定下来。这就是Matrix67的来历,它也成为了顾森在网络这个虚拟世界上的大名。 2006年以文科生身份参加全国信息学奥林匹克竞赛获夏令营银牌,并保送至中文系应用语言专业。现任启明星学校初中奥数教师、果壳网“死理性派”栏目编辑。   大三由于忙于一些事物,休学一年。   个人主页:http://www.matrix67.com/blog/   果壳网主页http://www.guokr.com/i/0376718656/

TOP

本帖最后由 happy886rr 于 2017-4-15 00:14 编辑

回复 19# 523066680
酷语言分形
1.地毯(图片均为外链)

2.树

3.圆

.
.
请使用CLGO解释器3.0版运行。下载地址:http://www.bathome.net/thread-43178-1-1.html
  1. ::*****************************************************************************
  2.   @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
  3. ::*****************************************************************************
  4. /*
  5.   谢尔宾斯基地毯,酷码;
  6. */
  7. //入口函数
  8. TO MAIN
  9. FOR :A 1 6
  10. CS
  11. WAIT 10
  12. MAKE :PENX=-330 :PENY=220
  13. TEXT 22 3 8 微软雅黑 Sierpinski-Level:{:A}
  14. MAKE :PENX=-200 :PENY=-200 :PENC=6 :PENW=10 :PENS=0
  15. XEBD 380 :A
  16. WAIT 500
  17. ]
  18. //谢尔宾斯基主循环
  19. TO XEBD :L :N
  20. REPEAT 4
  21. FD :L
  22. RT 90
  23. ]
  24. XK :L
  25. XEB :L/3 :N-1
  26. //地毯分循环
  27. TO XEB :L :N
  28. IF :N=0
  29. STOP
  30. ]
  31. XK :L
  32. XEB :L/3 :N-1
  33. REPEAT 2
  34. PU
  35. FD :L
  36. PD
  37. XK :L
  38. XEB :L/3 :N-1
  39. ]
  40. REPEAT 2
  41. PU
  42. RT 90
  43. FD :L
  44. LT 90
  45. PD
  46. XK :L
  47. XEB :L/3 :N-1
  48. ]
  49. REPEAT 2
  50. PU
  51. BK :L
  52. PD
  53. XK :L
  54. XEB :L/3 :N-1
  55. ]
  56. PU
  57. LT 90
  58. FD :L
  59. RT 90
  60. PD
  61. XK :L
  62. XEB :L/3 :N-1
  63. PU
  64. LT 90
  65. FD :L
  66. RT 90
  67. PD
  68. //细节补枝
  69. TO XK :L
  70. PU
  71. FD :L/3
  72. RT 90
  73. FD :L/3
  74. LT 90
  75. PD
  76. REPEAT 4
  77. FD :L/3
  78. RT 90
  79. ]
  80. MAKE :PENC=RAND(15)+1
  81. PU
  82. BK :L/3
  83. LT 90
  84. FD :L/3
  85. RT 90
  86. PD
复制代码
  1. ::*****************************************************************************
  2.   @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
  3. ::*****************************************************************************
  4. //入口函数
  5. TO MAIN
  6. FOR :A 2 12
  7. CS
  8. WAIT 10
  9. MAKE :PENX=-330 :PENY=220
  10. TEXT 22 3 8 微软雅黑 Sierpinski-Level:{:A}
  11. MAKE :PENX=0 :PENY=-200 :PENC=6 :PENW=2 :PENS=2
  12. TREE 100 :A 20 0.75
  13. WAIT 50
  14. ]
  15. TO TREE :L :N :ANGEL :RATE
  16. IF :N=0
  17. STOP
  18. ]
  19. FD :L
  20. RT :ANGEL
  21. TREE :L*:RATE :N-1 :ANGEL :RATE
  22. LT :ANGEL*2
  23. TREE :L*:RATE :N-1 :ANGEL :RATE
  24. RT :ANGEL
  25. BK :L
  26. MAKE :PENC=RAND(15)+1
复制代码
2

评分人数

TOP

回复 21# codegay
哦,我都不知道,不过他文章写得好。

TOP

本帖最后由 happy886rr 于 2017-4-14 23:49 编辑

回复 22# 老刘
你这账号太嫩了,还是一号好点。对了,酷语言也能彩色地毯。

TOP

回复 27# 老刘1号
只要代码巧妙,理论上没有画不出的图来,你就当他是控制台上的ppt吧。ICMD, Capis也能干这些,不过没酷语言绘图速度快。

TOP

本帖最后由 happy886rr 于 2018-9-3 21:29 编辑

回复 34# 老刘1号
技术有长进,我都改行了,不再写任何代码。

TOP

返回列表