gpt4 book ai didi

c++ - 在文本流中用另一个字符串替换所有出现的字符串

转载 作者:行者123 更新时间:2023-11-30 05:11:04 28 4
gpt4 key购买 nike

正如标题所说,如何将一个字符串替换为另一个字符串?例如:用户将输入三个输入。第一个输入是程序要替换的字符串;第二个是将替换 input1 的字符串;第三个是要打印的字符串。所以如果:

输入 1 = 花生

输入 2 = 椰子

Input3 = replace花生替换

输出:替换椰子替换

我已经启动了,但是我的程序只能替换相同长度的单词。我尝试搜索我的问题,但我不理解给定的解决方案,因为我只是 C/C++ 的新手。

char replacing[100];
char replacement[100];
char original[1000];
int count;

cin >> replacing;
cin >> replacement;

while(! cin.eof())
{
cin >> original;

char * pch;


pch = strstr (original, replacing);

count = strlen(replacement);
strncpy (pch, replacement, count);


cout << original << endl;

}

最佳答案

关于:

  • 您首先找到(如果有的话)那个字符串的出现
  • 使用 replace 将出现的地方替换为第二个字符串

这是应该起作用的东西:

    bool replaceFirst(string& input, const std::string& toBeReplaced, const std::string& replacement) {
size_t start_pos = input.find(toBeReplaced);
if(start_pos == std::string::npos)
return false; //substring not found!

input.replace(start_pos, toBeReplaced.length(), replacement); //found. now i can replace!
return true;
}

由于您使用的是 char 数组而不是 string,因此您必须确保替换不会导致您越界(字符串会自动调整大小)。

关于c++ - 在文本流中用另一个字符串替换所有出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45300221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com