中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何调换字符位置(反向)? 上一主题 | 下一主题
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『楼 主』:  如何调换字符位置(反向)? 使用 LLM 解释/回答一下

有一变量内容如: A=123456789............... (变量的值及长度不定)

求: 1)把变量A倒转(反向),如 :A=...............987654321

2)把变量A 的奇偶位分别取出来,分别设为两个变量,如:A1=13579............ A2=2468..............

Last edited by lin8197 on 2010-1-24 at 11:07 ]


2010-1-24 10:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
cxchcq
新手上路





积分 16
发帖 12
注册 2010-1-19
状态 离线
『第 2 楼』:  批刚学没学好。。暂用C思路抛砖, 使用 LLM 解释/回答一下

兄弟,
我现在不知道批用什么功能。如果可以用数组的话。
1)就好解了。用两个FOR
1,把1--9。。。。放入数组A
在用FOR递减把......9--1放入数组B
输出B就可了
2)的问题通过上面就好解了在多用几个FOR后加IF判断
批真不知道怎么搞,,我想思路是一样的吧。。我现在刚学批,,所以思路说下。。批怎么搞去看下命令和代码有什么可以实现

请高人出来答下~~~

Last edited by cxchcq on 2010-1-24 at 12:03 ]


2010-1-24 11:19
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

如果用数组很容易实现,但我对批也不熟


2010-1-24 11:36
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
cxchcq
新手上路





积分 16
发帖 12
注册 2010-1-19
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

看来是同仁了。。共同努力!!!


2010-1-24 11:58
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

关于问题1
@echo off 
set Output=
set /p Enter=请输入:
:Start
if not "%Enter%"=="" (
set Output=%Output%%Enter:~-1%
set Enter=%Enter:~0,-1%
goto :Start)
echo.
echo %Output%
pause >nul




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2010-1-24 12:36
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

我用这个办法解决,不如楼上的简洁

@echo off
setlocal ENABLEDELAYEDEXPANSION
set n1=0
set n2=1
set a=123456789abcde
set a1=
set a2=
set b=
:test
set "temp1=!a:~%n1%,1!"
set "temp2=!a:~%n2%,1!"
if "%temp1%" == "" goto end
set /A n1="n1+2"
set /A n2="n2+2"
set a1=%a1%%temp1%
set a2=%a2%%temp2%
set b=%temp2%%temp1%%b%
goto test

:end
echo %a1%
echo %a2%
echo %b%
pause


2010-1-24 12:47
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
mountvol
初级用户





积分 186
发帖 117
注册 2006-8-14
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

@echo off
set "a=123456789123456789"
call :sub -1 -1
echo %ret%
call :sub 0 2
echo %ret%
call :sub 1 2
echo %ret%
pause
goto :eof

:sub
set i=%1
set "str="
set "str1="
set "ret="
:loop
call set "str=%%a:~%i%,1%%"
if not defined str goto :eof

set /a j=i*-1-1
call set "str1=%%a:~%j%,1%%"
if not defined str1 goto :eof

set "ret=%ret%%str%"
set /a i+=%2
goto :loop

如果分开做几个sub的话效率会搞一些.


2010-1-24 13:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下


echo 123456789|sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//"




2010-1-24 14:23
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

如果想读一个文本,把每行内容反转,并保存一个另一个文本.如何做?


2010-1-24 16:58
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  Re 9楼 使用 LLM 解释/回答一下

你会反转一行之后,用for读取每行,每行都反转不就行了?




2010-1-24 18:35
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

Originally posted by HAT at 2010-1-24 06:35 PM:
你会反转一行之后,用for读取每行,每行都反转不就行了?


我对批不熟悉,麻烦给出代码.谢谢


2010-1-25 09:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lin8197
初级用户




积分 186
发帖 36
注册 2003-10-2
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

已解决


2010-1-25 10:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: