Computer >> Máy Tính >  >> Lập trình >> C ++

Xóa một từ cho trước khỏi chuỗi bằng C ++

Trong bài viết này, chúng tôi sẽ giải quyết vấn đề xóa một từ nhất định khỏi một chuỗi nhất định. Ví dụ -

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

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

Phương pháp tiếp cận để tìm ra giải pháp

Ví dụ:chúng ta có thể sử dụng một phương pháp đơn giản để xóa một từ khỏi chuỗi.

  • Đầu tiên, hãy đặt chuỗi đã cho ở dạng ma trận 2-D, trong đó mỗi từ được lưu trữ trong mỗi hàng.
  • Tìm từ trong ma trận và thay thế hàng đó bằng ký tự rỗng ở vị trí của từ đó.
  • Cuối cùng, in chuỗi đã được sắp xếp lại.

Ví dụ

#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;
}

Đầu ra

a given word
god everywhere

Giải thích về đoạn mã trên

  • Khởi tạo chuỗi và mảng với một số giá trị và gọi hàm để xóa từ đã cho.
  • Đặt từng từ của chuỗi vào mỗi hàng của ma trận 2-D bằng cách sử dụng một vòng lặp được lưu trữ từng ký tự trong mỗi khối cho đến khi tìm thấy khoảng trống.
  • So sánh chuỗi với một từ bằng cách sử dụng hàm strcmp () và đặt giá trị null vào hàng nơi tìm thấy từ đó.
  • Cuối cùng, in chuỗi bằng cách in từng hàng của ma trận.

Kết luận

Bài viết này thảo luận về việc xóa một từ đã cho khỏi một Chuỗi trong đó chúng tôi giải quyết vấn đề bằng cách lưu trữ chuỗi trong ma trận 2-D và sau đó thay thế từ đó bằng giá trị null. Chúng tôi đã giải quyết vấn đề này bằng cách sử dụng mã C ++. Tuy nhiên, chúng ta có thể giải quyết vấn đề tương tự bằng cách sử dụng bất kỳ ngôn ngữ nào khác như C, Java, Python, v.v. Hy vọng bạn thấy bài viết này hữu ích.