批处理如何计算任意字符串的字符长度?

如题:比如 "ABCDEFGHIJ   AGFD  FAS  DFDS"  引号中包含字母和空格的一个字符串,如何编辑批处理计算出其长度?

方法一:

T.CMD 内容如下: 运行 T.CMD "ABC DEF GHI " 就可以得到引号中字符串的长度
-------------------------------------
@ECHO OFF
IF %1*==* GOTO :EOF
ECHO %1
SET ABC=%~1
SET /A N=0
:LOOP
SET ABC=%ABC:~0,-1%
SET /A N=%N%+1
IF "%ABC%" EQU "" GOTO END
GOTO LOOP
:END
ECHO %N%
PAUSE

方法二:

折半法(渐近法)

[code]@echo off&setlocal enabledelayedexpansion
set "str=afdjg do men contgfirfmck     song putint"
set /a max=8190,min=0
for /l %%a in (1,1,14) do (
     set /a "num=(max+min)/2"
     for /f "delims=" %%b in ("!num!") do if "!str:~%%b!" equ "" (set /a max=num) else set /a min=num
)
if "!str:~%num%!" neq "" set /a num+=1
echo 经计算字符串str共有%num%个字符
pause>nul[/code]
通过逐步缩小 判断范围。 好像中央2 购物街 节目的判断商品价格的方法。呵呵。 多次喊出价格,与真实价格比高低,确定真实价格所在的范围。不断喊价缩小范围直到最终得到正确答案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值