标题: [文本处理] 批处理计算输入单词个数(不是字母个数) [打印本页]
作者: 基拉freedom 时间: 2008-8-19 20:31 标题: 批处理计算输入单词个数(不是字母个数)
先开始发在www.lxsea.com没人看 现在拿过来让大家看看 提提意见~~- @rem code by 基拉freedom 2008.08.19. lxsea
- @echo off
- setlocal EnableDelayedExpansion
- color FD
- :j
- echo. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- echo. ▓ 计算您输入的单词个数 ▓
- echo. ▓ 你可以输入中文 English或数字 ▓
- echo. ▓ 支持输入空格(可多空格) ▓
- echo. ▓ made by 基拉freedom ▓
- echo. ▓ 不支持非法字符的输入 特别是+号 ▓
- echo. ▓ 请勿在结尾故意多加空格 否则会不准 ▓
- echo. ▓ 联系我?? qq:276790434 ▓
- echo. ▓例子:输入I love you. 显示有3个单词 ▓
- echo. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- set /p var=请输入句子:
- set var1="%var%+"
- set a=0
- set b=1
- set c=1
- :begin
- set var2=!var1:~%a%,1!
- if "!var2!" neq " " (set b=1&goto c) else (goto a)
- :a
- if "!b!" neq "1" goto c
- set /a c=!c!+1
- set b=0
- :c
- set /a a=!a!+1
- if /i "!var2!" neq "+" goto begin
- color FC
- echo 您输入的单词个数为:!c!
- echo 谢谢您的使用
- echo 按N退出 回车键继续
- set /p g=(N键??回车键??)
- if /i "%g%"=="n" goto bye
- cls
- goto j
- :bye
- exit
复制代码
不支持非法字符
先开始想的时候很简单 只要计算空格数+1 后来想起来了 如果单词和单词之间有很多空格该怎么办呢 于是用笨脑子想了一段时间 终于想出来了(详细看代码咯)
但始终无法克服如果末尾有空格该怎么办 高手来帮我想想 谢谢了~~~~~
好了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
代码运行不正常 请查看附件
本文来自:『理想技术论坛』请记住我们的网址: http://bbs.lxsea.com ! 本文详细地址:http://bbs.lxsea.com/read.php?tid=62141
链接: https://pan.baidu.com/s/1fTOyQpBhpud1viGBcnAN1A?pwd=hr47
作者: 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
复制代码
作者: 基拉freedom 时间: 2008-8-19 21:28
这是计算单词个数 不是字母和数字o(∩_∩)o...
作者: namejm 时间: 2008-8-19 21:33
呵呵,说错了,其实2楼的是在计算单词的个数。
作者: 基拉freedom 时间: 2008-8-19 21:36
原帖由 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的~~~~
作者: pusofalse 时间: 2008-8-19 21:37
我输入Purification of soul 等了一分钟还没出来。
楼主的意思是计算字母或数字或其他字符出现的频率吗?~
作者: 基拉freedom 时间: 2008-8-19 21:41
好像直接复制代码不行的~~~~
下载附件
还不允许有空格 还是namejm版主的比较好~~~
作者: pusofalse 时间: 2008-8-19 21:44
OK了。觉得楼主还应该写一个统计字符出现频率的。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |