如何将 char str[MAXCHAR] 与字符串进行比较?

How compare char str[MAXCHAR] with a string?

我想比较两个序列是否相等,我正在使用以下代码,但比较总是 return false。

============================================= ============================

 // testecompare.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <string>
#include <iostream>
#include <fstream>
#include <Windows.h>

using namespace std;

string getCurrentDirectoryOnWindows()
    {
        const unsigned long maxDir = 260;
        char currentDir[maxDir];
        GetCurrentDirectory(maxDir, currentDir);
        strcat(currentDir, "\l0gs.txt");
        return string(currentDir);
    }

    string ReadFileContent() {

        string STRING;
        string aux;
        ifstream infile;
        infile.open(getCurrentDirectoryOnWindows());
        while (!infile.eof())
        {
            getline(infile, STRING);
            return STRING;
        }
        infile.close();

        return "";

    }


int _tmain(int argc, _TCHAR* argv[])
{
     char str[MAXCHAR] = "";
    sprintf(str, "0x0%X", "1D203E5");

    cout << str << endl;
    cout << "File content: " << ReadFileContent() << endl;

    // if i have the string "0x01D203E5" in my txt file 

    if (_stricmp(str,ReadFileContent().c_str()) == 0) { 

    cout << "Contents are equals!\n"; 

}

    system("pause");
    return 0;
}

如何正确进行这种比较?

非常感谢。

比较不同类型实例的一个简单技巧是将它们转换为通用类型,然后进行比较。

例如:

std::string content(ReadFileContent());
std::string from_array(str)
if (from_array == content)
{
}

编辑 1:工作示例
代码有效。
这是一个工作程序:

#include <iostream>
#include <string>

int main()
{
    static const char text[] = "Hello";
    std::string         text_as_string(text);
    std::string         expected_str("Hello");
    if (text_as_string == expected_str)
    {
        std::cout << "Strings are equal: " << text_as_string << "\n";
    }
    else
    {
        std::cout << "Strings are not equal.\n";
    }
    return 0;
}

$ g++ -o main.exe main.cpp
$ ./main.exe
Strings are equal: Hello

请记住,上面的代码示例是比较 整个整个 字符串,而不是 子字符串 .如果您想 搜索 一个较大字符串中的关键字符串,则需要不同的函数。