溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

批處理如何計(jì)算字符串的長(zhǎng)度

發(fā)布時(shí)間:2021-10-13 14:16:53 來(lái)源:億速云 閱讀:151 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“批處理如何計(jì)算字符串的長(zhǎng)度”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“批處理如何計(jì)算字符串的長(zhǎng)度”這篇文章吧。

代碼如下:


@echo off & setlocal EnableDelayedExpansion
:: 計(jì)算字符串的長(zhǎng)度
::
::
:began
set mystr=
set /p mystr=輸入要計(jì)算長(zhǎng)度的字符串(直接回車(chē)退出):
if not defined mystr goto :eof
for /l %%i in (0,1,1000) do if "!mystr:~%%i,1!"=="" set strlen=%%i && goto :_endfor
:_endfor
::echo 字符串: "%mystr%"
echo 長(zhǎng) 度: %strlen%
set strlen=
goto began

 

該方案的缺陷是:當(dāng)字符串長(zhǎng)度超過(guò)1000的時(shí)候,將不能探測(cè)到;不過(guò)變量能接收的長(zhǎng)度好象還不能超過(guò)1000

另外一種方案:

代碼如下:


@echo off
:: Based on willsort's codes code by JM 2006-10-9 CMD@XP
:: 出處:http://www.cn-dos.net/forum/viewthread.php?tid=19819
set mystr=
set /p mystr=輸入要計(jì)算長(zhǎng)度的字符串(直接回車(chē)退出):
if not defined mystr goto :eof
set count=0
setlocal enabledelayedexpansion
:intercept
set /a count+=1
for /f %%i in ("%count%") do if not "!mystr:~%%i,1!"=="" goto intercept
echo 長(zhǎng) 度: %count%
pause
goto :eof

@echo off
::
::
:began
set /p mystr=輸入要計(jì)算長(zhǎng)度的字符串:
echo %mystr:~0,1% | findstr /i "q" 1>nul 2>nul && exit rem 輸入q退出

call :bflen "%mystr%" rem 這兩句調(diào)用bflen,返回長(zhǎng)度到變量ret中。
echo 字符串: "%mystr%"
echo 長(zhǎng) 度: %ret%

goto began

:bflen rem 真麻煩,初始化要單獨(dú)拿出來(lái)。
set num=
set str=
set ret=
set str=%1
:len rem 計(jì)算字符串長(zhǎng)度
set str=%str:~0,-1%
set /a num = %num% + 1
if defined str goto len
set /a ret = %num% - 2
set num=
goto :eof

以上是“批處理如何計(jì)算字符串的長(zhǎng)度”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI