社区
C语言
帖子详情
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
cqpp
2006-08-23 10:29:53
rt
...全文
259
17
打赏
收藏
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cqpp
2006-08-26
打赏
举报
回复
没有好点的办法了吗?
tailzhou
2006-08-23
打赏
举报
回复
算法的复杂度应该是 o(n*m); n是你的流的长度;m是你的命令表元素的个数;
tailzhou
2006-08-23
打赏
举报
回复
那是命令解析的处理的问题了。跟是不是流以及用不用缓冲区都没什么关系;
也可以考虑用kmp;
struct instruct
{
int len; //指令的长度
char word[50]; //指令
int kmp[50]; //指令的kmp值
int idx; //模式中的当前位置;
}
struct instruction instructions[100]; 你的指令表;
int c;
while ((c=yougetchar())!=EOF)
{
for (i=0;i<100;++i)
{
//c跟instructions[i].word[idx]比较,依据结果更新idx;
//当idx==len时,找到指令,重新设置instructions数组各元素的idx
}
}
具体实现参见kmp算法;
cqpp
2006-08-23
打赏
举报
回复
你怎么从缓冲区识别命令?挨个命令使用strstr?
tailzhou
2006-08-23
打赏
举报
回复
为什么一定要从流里识别数据??
先保存到缓冲区,边处理边读,不更方便么?
cqpp
2006-08-23
打赏
举报
回复
关键是如何从流中识别出命令?要考虑效率
cqpp
2006-08-23
打赏
举报
回复
我准备做成一张精心准备的命令表(按字典一样排好顺序),然后对单个字符来了做成状态机处理.看看如何?
tailzhou
2006-08-23
打赏
举报
回复
缓冲区具体要多大,
以及什么时候再从流继续读取,
取决于你的具体的查找算法.
tailzhou
2006-08-23
打赏
举报
回复
你可以用一个字符数组来做缓冲呀;
比如你的命令的最长的是10个字符;
那么你就建立一个20长度的字符数组,
流(从串口来的)的信息先到你的数组做缓冲,
数组里的数据处理掉n个(10个以上)的字符后,移动未处理的字符到数组的开头,然后在读取n个字符到数组的末尾;
cqpp
2006-08-23
打赏
举报
回复
当然 ,命令表我是有,不然怎么执行命令呢?
cqpp
2006-08-23
打赏
举报
回复
上面的几种都考虑过!关键我的数据来源是一个流一样的(从串口来的)。不可能每收到一个字符就去做一遍查找!
robin_yao
2006-08-23
打赏
举报
回复
总要给出所有的 命令字符 汇总表 吧
否则怎么判断哪些是 命令?
chenhu_doc
2006-08-23
打赏
举报
回复
把所有的命令一字符串的形式放在一个字符串数组中。
然后对给定的字符串中做匹配!
每得到一个匹配就; system("matched order");
1。考虑KMP算法匹配!
2。c中的string函数:strstr,得到匹配的位置,然后通过position排序!根据排序后的字符串数组来依次执行system命令!
3。 如果追求效率,那么可以用索引来对即定的命令做初始化!
tailzhou
2006-08-23
打赏
举报
回复
cls dir是你自己的自定义函数??
如果你有自定义的函数xcls,那不是要执行xcls了??
cqpp
2006-08-23
打赏
举报
回复
没有分隔符,找到就执行!而且是自己的程序中实现
wlfc
2006-08-23
打赏
举报
回复
这个软件可以完成这个功能:通用字符串表达式编译运行库FORCAL
网址:http://www4.skycn.com/soft/23045.html
tailzhou
2006-08-23
打赏
举报
回复
题目描述不清;
你总要给出你的字符串的具体格式,
比如,哪些是分隔符等;
cmd cd 无法切换目录_DOS
命令
的
dir
查看,cd进入,
cls
清屏
命令
图文介绍
DOS是在WINDOWS出现之前的
一个
操作系统,虽然现在很少使用,但是对于维修人员,或者专业计算机使用者来说,了解一些基本操作对工作有一定的帮助。在WINDOWS 7下如何进入DOS?点击开始,运行,输入CMD
命令
,则进入DOS界面。显示的是当前的DOS版本号,版权。C:useradministrator> 指的是当前所在的位置是c:盘下的user文件夹里面的administrator文件夹...
30天开发操作系统 第 18 天 --
dir
命令
控制光标闪烁 mem
cls
dir
命令
的制作
#system("pause");system("
cls
");system("
dir
c://");
命令
system(“pause”);system(“
cls
”);system(“
dir
c://”); system(“pause”); 作用 system 就是调用从程序
中
调用系统
命令
(和shell
命令
—是linux下的,有多种
命令
,需要用时查表【见收藏】)。 system(“pause”) 就是从程序
中
调用pause
命令
。 pause 就是类似于“Press any key to continue...
Windows 终端常用
命令
,必备!
???? 作者:Linux猿 ???? 简介:CSDN博客专家????,华为云享专家????,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊! ???? 关注专栏:xxxxxxx (优质好文持续更新
中
……)???? ???? 欢迎小伙伴们点赞????、收藏⭐、留言???? 大家在 Windows 控制台(黑框)
中
执行
命令
的时候,是不是经常输错
命令
呢?经常与 Linux 的
命令
混淆了,这篇文章就来总结下 Windows 控制台的
命令
。 一、什么是 Windows 控制台 W
windows BAT 批处理常见
命令
解析
在上篇“windows bat 批处理脚本编写指南”博文
中
,比较系统地介绍了如何编写windows bat 批处理脚本,本文将重点介绍bat脚本
中
常用
命令
及部分DOS内外部
命令
使用方法,基本思路如下: 1)将
命令
分成bat脚本使用的常见
命令
(如:set、echo等)和dos内外部
命令
(如:
dir
、copy等) 2)dos内外部
命令
按功能进行分类,比如:操作目录、文件的,
字符串
查找的,网络相关的等...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章