【问题标题】:Using argv and strcmp at C在 C 中使用 argv 和 strcmp
【发布时间】:2016-12-01 21:09:17
【问题描述】:

我在使用 strcmp 函数时遇到了一些问题。每次我运行这段代码时,它只会打印错误消息,即使我在提示符下使用了正确的参数。

if (strcmp(argv[1], "\?") == 0) {
    ajudaPrompt();
}else {
    printf ("ERROR.\n\n");
    system("pause");
}

有人可以帮我吗?

【问题讨论】:

  • 什么是“正确的论点”?
  • program.exe \?.这 ”\?”一。当我使用 \? 时,它应该执行函数 ajudaPrompt();
  • 什么平台使用反斜杠 \ 来表示命令行参数?您确定它实际上不应该是正斜杠 / 吗?
  • 是的,现在可以正常工作了。用户应键入“program.exe \?”如果他需要帮助,则在 cmd 处显示帮助信息。

标签: c argv strcmp


【解决方案1】:

\ 字符用于开始 C 字符串中的转义码。例如,\n 表示换行符。

由于\? 不是有效的转义码,反斜杠字符将被忽略。所以代码中得到的字符串其实是"?"

如果您希望字符串包含文字反斜杠,请使用两个反斜杠。

if (strcmp(argv[1], "\\?") == 0) {

【讨论】:

  • @Marcos 很高兴我能帮上忙。如果您觉得有用,请随时 accept this answer
猜你喜欢
  • 1970-01-01
  • 2011-01-19
  • 2021-11-09
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多