请问一下有没有关于分析用户输入命令的高效算法

ww884203 2011-03-25 10:22:11
比如一个shell有很多种命令,要分析用户的输入是不是合法有没有什么高效的算法?
我一向都是把所有的命令弄成一个全局的char * *,然后得到输入以后遍历整个字符串表调用strcmp,如果相同的话就退出。如果没有相同就返回输入不合法。我感觉这样的效率比较低,有没有高效算法?
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_admi 2011-03-26
  • 打赏
  • 举报
回复
我大致明白楼主的意思了:要让命令处理具有非编程性质的可扩充性。

其实,使用组件就可以了。WINDOWS下用COM,LINUX下用CORBA。

如果觉得它们太复杂,或者不满意它们,还可以自己设计字符串与代码段的映射规则。
wbruce 2011-03-26
  • 打赏
  • 举报
回复
getopt吗?
或者楼主自己写一个专门解析命令行的类
showjim 2011-03-26
  • 打赏
  • 举报
回复
用trie或hash都可以
ww884203 2011-03-26
  • 打赏
  • 举报
回复
LS的都说得好深奥。。呵呵,我会好好参考别人的源码的,谢谢各位了,结贴了 !
yarpee 2011-03-26
  • 打赏
  • 举报
回复
没什么好的建议,LZ找找这类源码吧,学习下,自己写个命令解析类。编译原理里有些有用的知识。
ww884203 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 maoxing63570 的回复:]

你说的是命令行参数的问题,你可以看下netcat,也就是瑞士军刀的代码
[/Quote]
呵呵,看了一下,不好意思网络没学过看不懂,不过代码写得真美。。。羡慕。。
maoxing63570 2011-03-25
  • 打赏
  • 举报
回复
你说的是命令行参数的问题,你可以看下netcat,也就是瑞士军刀的代码
ww884203 2011-03-25
  • 打赏
  • 举报
回复
这个shell并不是操作系统的shell,是我自己的程序接受的输入命令而已。
ww884203 2011-03-25
  • 打赏
  • 举报
回复
不是啊,你理解错我的意思了,我的意思是我自己做个简单的小程序,然后菜单太死板了,就做个简单的shell,并不是要把DOS里面的命令都包括进来
maoxing63570 2011-03-25
  • 打赏
  • 举报
回复
呵呵,你能处理那么多的命令么?比如DOS命令那么多,你能都考虑到么,要是你都可以考虑到你就是Gates了,呵呵,处理错误你可以直接发到shell中执行,如果不可以,它自然会返回错误信息,然后你再回显错误信息给用户,他不就知道了么?

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧