在本文中,我们将解决从给定字符串中删除给定单词的问题。例如 -
'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() 函数将字符串与单词进行比较,并将 null 值放入其中的行中找到单词。
- 最后,通过打印矩阵的每一行来打印字符串。
结论
本文讨论了删除给定单词来自字符串,我们通过将字符串存储在二维矩阵中然后用空值替换该单词来解决问题。我们使用 C++ 代码解决了这个问题。但是,我们可以使用任何其他语言(例如 C、Java、Python 等)解决相同的问题。希望本文对您有所帮助。