我无法理解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;
}
答案 0 :(得分:4)
您正在比较指针,而不是他们指向的内容。
作为一种可能性,您可以使用std::string
,也可以使用C样式的字符串函数(如strncmp
)进行比较。