用较小的char替换char *的一部分*

时间:2013-09-25 19:17:21

标签: c++ string pointers char string-comparison

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

#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;
}

1 个答案:

答案 0 :(得分:4)

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

作为一种可能性,您可以使用std::string,也可以使用C样式的字符串函数(如strncmp)进行比较。