我如何在字符数组中查找单词的位置,然后用另一个单词替换该单词?
答案 0 :(得分:1)
我建议使用std::string
而不是使用字符数组。这将防止您必须实现执行实际搜索和替换的逻辑,并在新字符串最终变大时执行缓冲区管理。 std::string
包含字符串中searching和replacing元素的成员函数。
#include <string>
#include <iostream>
int main()
{
std::string haystack = "jack be nimble jack be blah blah blah";
static const std::string needle = "nimble";
std::cout << "before: " << haystack << std::endl;
// Find the word in the string
std::string::size_type pos = haystack.find(needle);
// If we find the word we replace it.
if(pos != std::string::npos)
{
haystack.replace(pos, needle.size(), "drunk");
}
std::cout << "after: " << haystack << std::endl;
}
这会产生以下输出
之前:杰克是敏捷的杰克是等等等等等等 之后:杰克被喝醉了杰克,等等等等等等