批处理之家's Archiver

基拉freedom 发表于 2008-8-19 20:31

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

[size=5][color=red]先开始发在[url=http://www.lxsea.com/]www.lxsea.com[/url]没人看 现在拿过来让大家看看 提提意见~~[/color][/size][code]@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 [/code]不支持非法字符
先开始想的时候很简单 只要计算空格数+1 后来想起来了 如果单词和单词之间有很多空格该怎么办呢 于是用笨脑子想了一段时间 终于想出来了(详细看代码咯)
[size=4][color=red]但始终无法克服如果末尾有空格该怎么办 高手来帮我想想 谢谢了~~~~~[/color][/size]
好了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
代码运行不正常 请查看附件
本文来自:『理想技术论坛』请记住我们的网址: [url=http://bbs.lxsea.com/]http://bbs.lxsea.com[/url] ! 本文详细地址:[url=http://bbs.lxsea.com/read.php?tid=62141]http://bbs.lxsea.com/read.php?tid=62141[/url]

namejm 发表于 2008-8-19 21:21

  如果只是计算字母或数字的个数的话,一条for语句就搞定了,演示如下:[code]@echo off
set num=0
set str=I love bathome
for %%i in (%str%) do set /a num+=1
echo %str% 总共有 %num% 个单词
pause[/code]

基拉freedom 发表于 2008-8-19 21:28

这是计算单词个数 不是字母和数字o(∩_∩)o...

namejm 发表于 2008-8-19 21:33

呵呵,说错了,其实2楼的是在计算单词的个数。

基拉freedom 发表于 2008-8-19 21:36

[quote]原帖由 [i]namejm[/i] 于 2008-8-19 21:21 发表 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=8115&ptid=1556][img]http://bbs.bathome.net/images/common/back.gif[/img][/url]
  如果只是计算字母或数字的个数的话,一条for语句就搞定了,演示如下:@echo off
set num=0
set str=I love bathome
for %%i in (%str%) do set /a num+=1
echo %str% 总共有 %num% 个单词
pause [/quote]

要学习了~~~谢谢了
我的思路只是来自c的~~~~

pusofalse 发表于 2008-8-19 21:37

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

基拉freedom 发表于 2008-8-19 21:41

好像直接复制代码不行的~~~~
下载附件
还不允许有空格 还是namejm版主的比较好~~~

pusofalse 发表于 2008-8-19 21:44

OK了。觉得楼主还应该写一个统计字符出现频率的。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.