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 ”

แนวทางในการหาทางออก

ตัวอย่างเช่น เราใช้วิธีง่ายๆ ในการลบคำออกจากสตริง

  • ขั้นแรก ให้ใส่สตริงที่กำหนดในรูปแบบเมทริกซ์ 2 มิติ โดยที่แต่ละคำจะถูกเก็บไว้ในแต่ละแถว
  • ค้นหาคำในเมทริกซ์และแทนที่แถวนั้นด้วยอักขระ null ที่คำนั้น
  • สุดท้าย พิมพ์สตริงที่จัดลำดับใหม่

ตัวอย่าง

#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 มิติ แล้วแทนที่คำนั้นด้วยค่าว่าง เราแก้ไขปัญหานี้โดยใช้รหัส C++ อย่างไรก็ตาม เราสามารถแก้ปัญหาเดียวกันนี้ได้โดยใช้ภาษาอื่น เช่น C, Java, Python เป็นต้น หวังว่าบทความนี้จะเป็นประโยชน์