ในบทความนี้ เราจะแก้ปัญหาการนำคำที่กำหนดออกจากสตริงที่กำหนด ตัวอย่างเช่น −
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 เป็นต้น หวังว่าบทความนี้จะเป็นประโยชน์