使用 C++ 从字符串中删除给定的单词

在本文中,我们将解决从给定字符串中删除给定单词的问题。例如 -

Input : str = “remove a given word ”, word = “ remove ”

Output : “ a given word ”

Input : str = “ god is everywhere ”, word = “ is ”

Output : “ god everywhere ”

寻找解决方案的方法

例如,我们可以使用一种简单的方法从字符串中删除一个单词。

  • 首先,将给定的字符串放入二维矩阵形式,其中每个单词存储在每一行中。

  • 在矩阵中找到单词并将该行替换为单词所在的空字符。

  • 最后,打印重新排序的字符串。

示例

#include <bits/stdc++.h>

using namespace std;

int remove_word (string str, char word[]) {

   char matrix[10][30];

   int i = 0, j = 0, k = 0, len1 = 0, len2 = 0;

   // 将字符串的每个单词放入二维矩阵的行中。

   for (i = 0; str[i] != '\0'; i++) {

      if (str[i] == ' ') {

         matrix[k][j] = '\0';

         k++;

         j = 0;

      }else{

         matrix[k][j] = str[i];

         j++;

      }

   }

   // 在给定的字符串中查找单词并在找到该单词时放置一个空字符。

   matrix[k][j] = '\0';

   j = 0;

   for (i = 0; i < k + 1; i++) {

      if (strcmp (matrix[i], word) == 0) {

         matrix[i][j] = '\0';

      }

   }

   j = 0;

   // 打印重新排序的字符串。

   for (i = 0; i < k + 1; i++){

      if (matrix[i][j] == '\0')

         continue;

      else

         cout << matrix[i] << " ";

   }

   cout << "\n";

}

int main () {

   char str1[] = "remove a given word", word1[] = "remove";

   char str2[] = "god is everywhere", word2[]="is";

   // 调用函数从字符串中删除一个单词并打印它。

   remove_word (str1, word1);

   remove_word (str2, word2);

   return 0;

}

输出结果
a given word

god everywhere

上面代码的解释

  • 使用一些值初始化字符串和数组并调用函数以删除给定的单词。

  • 使用循环将字符串的每个单词放在二维矩阵的每一行中,将每个字符存储在每个块中,直到找到空间为止。

  • 使用strcmp()函数将字符串与单词进行比较,并在找到该单词的行中放置空值。

  • 最后,通过打印矩阵的每一行来打印字符串。

结论

本文讨论了从字符串中删除给定单词,我们通过将字符串存储在二维矩阵中,然后用空值替换单词来解决问题。我们使用 C++ 代码解决了这个问题。但是,我们可以使用任何其他语言(如 C、Java、Python 等)解决相同的问题。希望本文对您有所帮助。

以上是 使用 C++ 从字符串中删除给定的单词 的全部内容, 来源链接: utcz.com/z/327414.html

回到顶部