在C语言中如何将命令行参数与字符串比对并验证指定参数值
在C语言中验证命令行参数是否为指定字符串
- C语言里不能直接用
==比较字符串内容,因为==对比的是字符串指针的内存地址,而非实际字符序列。要判断字符串内容是否一致,得用标准库的strcmp函数,使用前必须包含<string.h>头文件。 strcmp的返回值规则:- 返回0:两个字符串内容完全相同
- 返回负数:第一个字符串的ASCII码序列小于第二个
- 返回正数:第一个字符串的ASCII码序列大于第二个
修改后的代码如下:
// 必须引入此头文件才能使用strcmp #include <string.h> // ... 其他代码逻辑 ... if (argc == 2) { // 对比第二个命令行参数(argv[1])与目标字符串"autoplay" if (strcmp(argv[1], "autoplay") == 0) { autoplay(num5); } }
说明:
argv[0]是程序自身的名称,用户传入的第一个参数存在argv[1]中- 只有当
strcmp返回0时,才说明参数内容完全匹配,此时执行autoplay(num5)
如果需要忽略大小写(比如允许"Autoplay"、"AUTOPLAY"触发逻辑),可根据系统选择对应函数:
// Linux/macOS等POSIX系统用strcasecmp if (strcasecmp(argv[1], "autoplay") == 0) { autoplay(num5); } // Windows系统用_stricmp if (_stricmp(argv[1], "autoplay") == 0) { autoplay(num5); }
内容的提问来源于stack exchange,提问作者Dakota Kellogg
相关产品推荐
相关产品推荐

