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

[文本处理] 如何判断输入的字符串的长度

比如输入123456,如何才能判断出输入的字符有多少个?
请大家提供一下思路~~代码暂时不用写出来

从左到右挨个儿取字符串的一个字符,并累加计数,如果"字符"=="",表示上次取的是最后一个字符,则计数终止

TOP

本论坛搜索“长度”
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off & setlocal EnableDelayedExpansion
  2. set /p var=请输入字符:
  3. for /l %%a in (1 1 100) do (
  4. if "!var:~0,%%a!"=="!var!" (
  5. echo %%a
  6. goto eof)
  7. )
  8. :eof
  9. pause
复制代码

这两天没有上论坛,今天突然一下自己考虑到的想法,试了一下,成功了。不过还是有些问题。我用的这个算法,必须规定for /l的长度,比如我给出的代码里面是100。不知道有没有其他的方法可以不受长度的限制。

另一个问题,如果我把for /l的代码改成这样,那么结果就会出错,想请教一下为什么这样会出错
  1. for /l %%a in (1 1 100) do (
  2. set /a n=%%a
  3. if "!var:~0,!n!!"=="!var!" (
  4. echo %%a
  5. goto eof)
  6. )
  7. :eof
  8. pause
复制代码

TOP

回复 4楼 的帖子

不知道有没有其他的方法可以不受长度的限制。

参考3楼
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表