查找并替换字符数组中的单词

时间:2013-06-21 20:43:28

标签: c++ console-application arrays

我如何在字符数组中查找单词的位置,然后用另一个单词替换该单词?

1 个答案:

答案 0 :(得分:1)

我建议使用std::string而不是使用字符数组。这将防止您必须实现执行实际搜索和替换的逻辑,并在新字符串最终变大时执行缓冲区管理。 std::string包含字符串中searchingreplacing元素的成员函数。

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

这会产生以下输出

  之前:杰克是敏捷的杰克是等等等等等等   之后:杰克被喝醉了杰克,等等等等等等