【问题标题】:Compare a char[] and a char*比较 char[] 和 char*
【发布时间】:2015-04-13 16:53:52
【问题描述】:

我有一个返回char*(名称)的函数。我需要检查名称是否与我在运行程序时输入的名称相同。 那么如何比较 char 指针和 char 数组呢? (这是学校作业的一部分)

【问题讨论】:

  • 你至少尝试过在这个网站上搜索答案吗?

标签: c++ arrays pointers char compare


【解决方案1】:

在 C++ 中,您将返回 std::string 而不是 char*,并与

if (returned == expected)

如果您尝试编写 C 和 C++ 的可怕混合体,那么您可以创建一个字符串进行比较:

if (std::string(pointer) == expected)

或使用 C 库

if (std::strcmp(pointer, expected) == 0)

【讨论】:

    【解决方案2】:

    像使用 strcmp 一样

    char a[] = "someName";
    char* b = GetSomeOtherName();
    if (strcmp(a, b) == 0)
    {
        // equal
    }
    

    【讨论】:

      【解决方案3】:

      您可以使用 strcmp() from <cstring> header like

      if ( strcmp ( func() , a ) == 0 )
      {
         // they are equal
      }
      

      其中func() 返回指针,a 是您的字符数组。

      但是,当您使用 C++ 时,您应该使用 std::string 。比字符数组好很多。

      检查字符串是否相等真的很容易。你可以这样做

      std::string string1;
      std::string string2;
      
      //  assign them some values
      
      if ( string1 == string2 )
      {
         // they are equal
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 1970-01-01
        • 2019-09-13
        • 2013-11-27
        • 2012-01-25
        • 1970-01-01
        相关资源
        最近更新 更多