我在理解字符*数组时遇到问题,并且无法替换一个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
)进行比较。