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

[文本处理] 批处理计算输入单词个数(不是字母个数)

先开始发在www.lxsea.com没人看 现在拿过来让大家看看 提提意见~~
  1. @rem code by 基拉freedom 2008.08.19. lxsea
  2. @echo off
  3. setlocal EnableDelayedExpansion
  4. color FD
  5. :j
  6. echo. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  7. echo. ▓ 计算您输入的单词个数 ▓
  8. echo. ▓ 你可以输入中文 English或数字 ▓
  9. echo. ▓ 支持输入空格(可多空格) ▓
  10. echo. ▓ made by 基拉freedom ▓
  11. echo. ▓ 不支持非法字符的输入 特别是+号 ▓
  12. echo. ▓ 请勿在结尾故意多加空格 否则会不准 ▓
  13. echo. ▓ 联系我?? qq:276790434 ▓
  14. echo. ▓例子:输入I love you. 显示有3个单词 ▓
  15. echo. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  16. set /p var=请输入句子:
  17. set var1="%var%+"
  18. set a=0
  19. set b=1
  20. set c=1
  21. :begin
  22. set var2=!var1:~%a%,1!
  23. if "!var2!" neq " " (set b=1&goto c) else (goto a)
  24. :a
  25. if "!b!" neq "1" goto c
  26. set /a c=!c!+1
  27. set b=0
  28. :c
  29. set /a a=!a!+1
  30. if /i "!var2!" neq "+" goto begin
  31. color FC
  32. echo 您输入的单词个数为:!c!
  33. echo 谢谢您的使用
  34. echo 按N退出 回车键继续
  35. set /p g=(N键??回车键??)
  36. if /i "%g%"=="n" goto bye
  37. cls
  38. goto j
  39. :bye
  40. exit
复制代码
不支持非法字符
先开始想的时候很简单 只要计算空格数+1 后来想起来了 如果单词和单词之间有很多空格该怎么办呢 于是用笨脑子想了一段时间 终于想出来了(详细看代码咯)
但始终无法克服如果末尾有空格该怎么办 高手来帮我想想 谢谢了~~~~~
好了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
代码运行不正常 请查看附件
本文来自:『理想技术论坛』请记住我们的网址: http://bbs.lxsea.com ! 本文详细地址:http://bbs.lxsea.com/read.php?tid=62141
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

  如果只是计算字母或数字的个数的话,一条for语句就搞定了,演示如下:
  1. @echo off
  2. set num=0
  3. set str=I love bathome
  4. for %%i in (%str%) do set /a num+=1
  5. echo %str% 总共有 %num% 个单词
  6. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

这是计算单词个数 不是字母和数字o(∩_∩)o...
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

呵呵,说错了,其实2楼的是在计算单词的个数。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

原帖由 namejm 于 2008-8-19 21:21 发表
  如果只是计算字母或数字的个数的话,一条for语句就搞定了,演示如下:@echo off
set num=0
set str=I love bathome
for %%i in (%str%) do set /a num+=1
echo %str% 总共有 %num% 个单词
pause


要学习了~~~谢谢了
我的思路只是来自c的~~~~
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

我输入Purification of soul 等了一分钟还没出来。
楼主的意思是计算字母或数字或其他字符出现的频率吗?~
心绪平和,眼藏静谧。

TOP

好像直接复制代码不行的~~~~
下载附件
还不允许有空格 还是namejm版主的比较好~~~
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

OK了。觉得楼主还应该写一个统计字符出现频率的。
心绪平和,眼藏静谧。

TOP

返回列表