在没有cstring的情况下比较C++中的字符数组和字符串文字

blc*_*llo 0 c++ comparison arguments cstring

在我的编程课中,我们目前有一个项目要求我们在程序中加入参数.然后我需要能够检查其中一个参数,看看哪个值传递给程序,以便我可以选择适合该程序的行为.在之前的家庭作业中,我使用以下代码使用cstring库中包含的strcmp函数执行此操作:

int main(int argc, char *argv[]) {
   if (strcmp(argv[1], "yes") == 0) {
      // do this code
   } else if (strcmp(argv[1], "no") == 0) {
      // do this code
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,我们不允许在此项目中使用cstring库.我怎么能这样做?

hrn*_*rnt 5

试试这个:

if (argv[1] == std::string("yes")) { stuff }

如果练习的目的是教授字符串比较如何工作,那么像其他答案建议一样实现for循环.但是,在C++中你不应该使用strcmp- 有一个字符串类是有原因的.

  • 嗯,这取决于课程.我知道C++课程禁止使用C函数来强迫人们学习提供相同功能的C++工具.我编辑了我的答案以更好地反映这一点. (2认同)