函数,用于查找和替换字符数组(流)c++中的字符串



我正试图找到一种方法,在char数组中搜索字符串,然后在每次出现时用另一个字符串替换它。我很清楚该怎么做,但流背后的整个语法有时会让我感到困惑

string FindWord = "the";
string ReplaceWord = "can";
int i = 0;
int SizeWord = FindWord.length();
int SizeReplace = ReplaceWord.length();
while (   Memory[i] != '')
{
         //now i know I can probably use a for loop and 
         //then if and else statements but im just not quite sure
    i++; //and then increment my position
}

我通常不会这么慢:/有什么想法吗?

我更喜欢在将字符数组转换为std::string 后再处理它

以下内容很简单:-

#include<iostream>
#include<string>
int main ()
{
char memory[ ] = "This is the char array"; 
 //{'O','r',' ','m','a','y',' ','b','e',' ','t','h','i','s',''};
std::string s(memory);
std::string FindWord = "the";
std::string ReplaceWord = "can";

std::size_t index;
    while ((index = s.find(FindWord)) != std::string::npos)
        s.replace(index, FindWord.length(), ReplaceWord);
std::cout<<s;
return 0;
}

对于循环,需要两个,一个在另一个内部。外部for循环通过Memory字符串,每次一个字符。内循环开始在外循环中的位置查找FindWord

这是一个典型的案例,您需要将问题分解为更小的步骤。你正在尝试的事情可能有点太复杂了,不能一次完成。

尝试以下策略

1) 写一些代码来在另一个字符串的给定位置找到一个字符串,这将是内部循环。

2) 将步骤1中的代码放入另一个循环(外循环)中,该循环将遍历您正在搜索的字符串中的每个位置

3) 现在,您可以查找一个字符串在另一个字符串中的所有出现,添加替换逻辑。

相关内容

  • 没有找到相关文章

最新更新