返回列表 发帖

回复 2楼 的帖子

你在哪层啊,我在十八层啊,以后常联系啊

TOP

A1 A2 答案

A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。

  A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。

答案:
@echo off
echo A1:
set str=I,love,bbs;bathome.net
for %%I in (%str%) do echo %%I
echo A2:
@echo off
set str=I,love,bbs;bathome;net
for %%I in (%str%) do echo %%I
pauseCOPY

TOP

答案的总结

a1:答案很简单:一句话:
for %%i in ("I love,bbs;bathome.net") do %%I
不再多说了

对于a2,观看了各位大侠的帖子,总结有下列几种:
第一种:

@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do cls&echo %%i
pauseCOPY


这种是利用清屏来实现最后的输出。但不知清屏对内存的占用大不大。语言简洁

第二种:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do set a=%%i
echo %a%
pauseCOPY

这种是利用变量赋值来实现最后的输出。对内存占用不是很大。语言有点复杂

第三种:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i >a.txt
type a.txt& del a.txt
pauseCOPY


这种是第二种的扩展。第二种是用内存来存取内容,第三种则是用硬盘来存取。语言复杂

TOP

==========================================================
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
(cn怎么显示.....很费解啊这个事情....)
答:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str:~0,-4%) do echo %%i
for %%i in (%str:~-3%) do echo %%i
pauseCOPY
cn实在搞不出来......我都没看到有c
==========================================================
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
答:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str:~-3%) do echo %%i
pauseCOPY
==========================================================
End;

TOP

Q1:
@echo off
set str=i love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pauseCOPY
Q2:
@echo off
set str=i love,bbs;bathome.net
set c=net
for %%i in (%str%) do echo if %%i=net echo %%i
pauseCOPY
第二个问题在处理清理前面的字符串时,存在困难,没能只用for语句解决,希望前辈指正!

TOP

A1
@echo off
set str=I love,bbs;bathome.net
for %%i (%str%) do echo %%iCOPY
A2 实现不了
@echo off
set str=I love,bbs;bathome.net
for %%i (%str%) do if exist "net" echo %%iCOPY
另求149楼两段代码解释,完美实现了
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str:~0,-4%) do echo %%i
for %%i in (%str:~-3%) do echo %%i
pauseCOPY

TOP

I love,bbs;bathome.net
中bathome.net 为一个字符 而题目要求逐个显示单词
大家都是
@echo off
set str=i love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause>nul
显示结果是:
i
love
bbs
bathome.netCOPY
正确的应该是这样
i
love
bbs
bathome
net
请问楼主你出题的时候有没考虑到句号的是被划分在一个字符串里的

TOP

原帖由 coobe 于 2010-9-7 16:45 发表

A1
@echo off
set str=i love,bbs;bathome.cn
for %%i in (%str:.=,%) do echo %%i
pause

可以说说(%str:.=,%)的意思吗?
是吧这么都当成分隔符吗?还有别的用法吗?

TOP

学习作业帖

A1:
@echo off
for  %%i in (I,love,bbs,bathroom,cn) do echo %%i
pauseCOPY
A2:
@echo off
for %%i in (I,love,bbs,bathroom,cn) do (if "%%i"=="cn" echo %%i)
pauseCOPY

TOP

@echo off
set str=i love,bbs;bathome.net
for /f "tokens=1-5 delims=,;." %%a in ("%str%") do (
echo %%a %%b %%c %%d %%e
)
echo.
for /f "tokens=2 delims=." %%i in ("%str%") do echo %%i
pause>nulCOPY

TOP

楼主已经闭关2个月了,题目错了也没人改,cn改net
A1:
@echo off
set str=i love,bbs;bathome,net
for %%i in (%str%) do echo %%i
pause

A2:
@echo off
set str=i love,bbs;bathome,net
for %%i in (%str%) do echo net
pause
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

TOP

@echo off
echo 先回答问题一
set "str=I
love,bbs;bathome.net"
for /f "tokens=1,2" %%a
in ("%str%") do (
echo %%a
for /f "tokens=1-4
delims=,;." %%c in ("%%
b") do (
echo %%c
echo %%d
echo %%e
echo %%f
)
)
pause
cls
echo 以下是问题二解答
pause
@echo off
set "str=I
love,bbs;bathome.net"
for /f "tokens=1,2" %%a
in ("%str%") do (
for /f "tokens=1-4
delims=,;." %%c in ("%%
b") do (
echo %%f
)COPY

TOP

好好地看一看

TOP

楼上可以

楼上可以再次精简一下…

TOP

1
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
2
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=4 delims=,.;" %%a in ("%str%") do echo %%a
pause

TOP

返回列表