C++を使用して文字列から特定の単語を削除する
この記事では、特定の文字列から特定の単語を削除する問題を解決します。例-
Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” Output : “ god everywhere ”>
解決策を見つけるためのアプローチ
たとえば、単純なアプローチを使用して、文字列から単語を削除できます。
- まず、指定された文字列を2Dマトリックス形式で配置します。ここで、各単語は各行に格納されます。
- マトリックスで単語を見つけ、その行を単語のあるヌル文字に置き換えます。
- 最後に、並べ替えられた文字列を印刷します。
例
#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
上記のコードの説明
- 文字列と配列をいくつかの値で初期化し、関数を呼び出して単語を削除します。
- スペースが見つかるまで各ブロックに各文字を格納するループを使用して、2次元マトリックスの各行に文字列の各単語を配置します。
- strcmp()関数を使用して文字列と単語を比較し、単語が見つかった行にnull値を入力します。
- 最後に、マトリックスの各行を印刷しながら文字列を印刷します。
結論
この記事では、文字列を2次元行列に格納し、その単語をnull値に置き換えることで問題を解決する、文字列から特定の単語を削除する方法について説明しました。この問題は、C++コードを使用して解決しました。ただし、C、Java、Pythonなどの他の言語を使用して同じ問題を解決することはできます。この記事がお役に立てば幸いです。
-
C++でstd::stringからスペースを削除します
このプログラムでは、C++でstd::stringからスペースを削除する方法を説明します。これを削除するには、remove()関数を使用します。このremove()関数を使用すると、イテレータの開始と終了を取得し、次にそのイテレータオブジェクトから削除される3番目の引数を取得します。 Input: A string "This is C++ Programming Language" Output: "ThisisC++ProgrammingLanguage" アルゴリズム Step 1: Get the string Step 2: Remove sp
-
C#の特定の文字列からすべての重複を削除します
これが文字列です。 string str = "ppqqrr"; 次に、Hashsetを使用して文字列をcharにマップします。これにより、文字列から重複する文字が削除されます。 var res = new HashSet<char>(str); 完全な例を見てみましょう- 例 using System; using System.Linq; using System.Collections.Generic; namespace Demo { class Program { static v