-2

我无法理解 char* 数组,无法替换一个 char* 数组的一部分,并在找到匹配段时插入不同的 char* 数组。这是我目前正在使用的代码,我不明白为什么我在 for 循环中的 if 检查不认为它是匹配的。

#include <iostream>

int main()
{
    char* sampleString = "this is a test";
    const char* oldString = "a test";
    const char* newString = "now changed";

    std::cout<< " String before amendment: " << std::endl;
    std::cout<< sampleString << std::endl;

        for (char* i = sampleString; *i; ++i)
    {
        std::cout<< i << std::endl;
        std::cout<< oldString << std::endl;

        if (i == old_str)
        {
            std::cout<<"found match"<< std::endl;
                        // replace oldString with newString
        }

    }

    std::cout<< " String after amendment: " << std::endl;
    std::cout<< sampleString << std::endl;

    std::cin.get();
    return 0;
}
4

1 回答 1

4

您正在比较指针,而不是它们指向的内容。

作为几种可能性,您可以使用std::string整个,或者使用 C 风格的字符串函数strncmp来进行比较。

于 2013-09-25T19:21:38.077 回答