C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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などの他の言語を使用して同じ問題を解決することはできます。この記事がお役に立てば幸いです。


  1. 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

  2. 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