C 如何解析不同类型的参数?
我的程序需要支持通过终端获取这些参数:C 如何解析不同类型的参数?,c,terminal,command-line-arguments,getopt,C,Terminal,Command Line Arguments,Getopt,我的程序需要支持通过终端获取这些参数: -stdin后跟随机数 其他长类型的选项后跟一个数字或无 档案 网站 我的问题是,尽管getopt适用于前两种情况,但它似乎不适用于文件和网站,因为它们不是以“-”开头的。有什么方法可以让它工作吗?或者我必须使用for循环和某种模式匹配来通过*argv[]吗?的参数 int main( int argc, char * argv[] ) 您可以遍历argv中的每个字符串,并以您需要的任何方式对其进行解析 我不相信有比这更雄辩的解决方案想到的第一个解决
- -stdin后跟随机数
- 其他长类型的选项后跟一个数字或无
- 档案
- 网站
我的问题是,尽管getopt适用于前两种情况,但它似乎不适用于文件和网站,因为它们不是以“-”开头的。有什么方法可以让它工作吗?或者我必须使用for循环和某种模式匹配来通过*argv[]吗?的参数
int main( int argc, char * argv[] )
您可以遍历argv中的每个字符串,并以您需要的任何方式对其进行解析
我不相信有比这更雄辩的解决方案想到的第一个解决方案可以是按照程序逻辑要求适当地解析
argv
输入字符串。另一方面,您可能希望使用更优雅的方式来处理您正在搜索的任何模式。此时,正则表达式是您的朋友。您可以在源代码中包含regex.h
,并深入到regexp的神奇世界
检查一下:*argv[]带有for循环和某种模式匹配?这正是你应该做的。循环,strcmp,然后必须使用[i]和[i+1]进行操作。能否仅将字符串的前4个字母与strcomp进行比较?我能不能只检查我的参数是否以http开头?