使用 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; // putting each word of string into the rows of the 2-D matrix. for (i = 0; str[i] != '\0'; i++) { if (str[i] == ' ') { matrix[k][j] = '\0'; k++; j = 0; }else{ matrix[k][j] = str[i]; j++; } } // looking for the word in a given string and putting a null character when the word is found. 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; // printing the reordered string. 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"; // calling a function to remove a word from a string and print it. remove_word (str1, word1); remove_word (str2, word2); return 0; }
输出
a given word god everywhere
上述代码的解释
- 使用一些值初始化字符串和数组,并调用函数以移除给定单词。
- 使用循环将字符串的每个单词放入二维矩阵的每一行,将每个字符存储在每个块中,直到找到空格。
- 使用 strcmp() 函数将字符串与单词进行比较,并在找到单词的行中放入空值。
- 最后,打印字符串,打印矩阵的每一行。
结论
本文讨论了从字符串中移除给定单词,我们通过将字符串存储在二维矩阵中,然后用空值替换单词来解决问题。我们使用 C++ 代码解决了这个问题。但是,我们可以使用其他任何语言(如 C、Java、Python 等)来解决相同的问题。希望本文对您有所帮助。
广告