【问题标题】:How to parse different type of arguments?如何解析不同类型的参数?
【发布时间】:2015-06-20 01:48:43
【问题描述】:

我的程序需要支持通过终端获取这些参数:

  • -stdin 后跟随机数量的数字
  • 其他长类型选项,后跟一个数字或没有数字
  • 文件
  • 网站

我遇到的问题是,虽然 getopt 适用于前两种情况,但它似乎不适用于文件和网站,因为它们不以“-”开头。有没有办法让它工作,还是我必须通过 *argv[] 使用 for 循环和某种模式匹配?

【问题讨论】:

  • *argv[] 带有 for 循环和某种模式匹配?正是你应该做的。循环,strcmp,然后按你的需要使用 [i] 和 [i+1]。
  • 你可以只比较字符串的前 4 个字母和 strcomp 吗?就像我可以只检查我的论点是否以 http 开头吗?

标签: c terminal command-line-arguments getopt


【解决方案1】:

的论据
int main( int argc, char * argv[] )

您可以遍历 argv 中的每个字符串并以您需要的任何方式对其进行解析。

我不相信有更雄辩的解决方案

【讨论】:

    【解决方案2】:

    想到的第一个解决方案是按照程序逻辑所需的方式适当地解析argv 输入字符串。另一方面,您可能希望使用更优雅的方式来处理您正在搜索的任何模式。此时,正则表达式就是你的朋友了。您可以在您的源代码中包含regex.h 并进入正则表达式的奇迹世界。

    看看这个:Regular Expression in C

    【讨论】:

      猜你喜欢
      • 2013-06-24
      • 1970-01-01
      • 2021-01-17
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多