将部分字符*替换为较小的字符*



我在理解字符*数组时遇到问题,并且无法替换一个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;
}

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

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

最新更新