พูดคุยถึงวิธีการลบฟังก์ชันที่จะลบอักขระต้องห้าม เช่น [ ' :',' ? ', ' \ ', ' / ', ' <', '> ', ' | ’, ‘ * ’ ] จากสตริง เช่น
Input: str = “ Hello: Welco*me/ to Tu>torials point|. ” Output: “ Hello Welcome to Tutorials point. ” Explanation: Input String contains forbidden characters which got removed and new string has no forbidden characters. Input: str = “ How/ are y*ou doi,ng? ” Output: “ How are you doing ”
แนวทางในการหาแนวทางแก้ไข
วิธีการง่ายๆ ที่สามารถประยุกต์ใช้กับปัญหานี้ได้คือ
-
ข้ามสตริงจากด้านใดด้านหนึ่ง
-
ตรวจสอบอักขระแต่ละตัวว่าเป็นอักขระต้องห้ามหรือไม่
-
ลบอักขระหากเป็นอักขระต้องห้าม
-
เราสามารถแทรกค่า Null หรือสตริงใหม่เพื่อแทรกอักขระทั้งหมดยกเว้นอักขระต้องห้ามในการลบอักขระ
ตัวอย่าง
รหัส C++ สำหรับแนวทางข้างต้น
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
// function to remove forbidden charcters.
void removeforbidden(char* str){
int j = 0;
int n = strlen(str);
// traversing through the string and searching for forbidden characters.
for(int i = 0;i<n;i++){
switch(str[i]){
case '/':
case '\\':
case ':':
case '?':
case '"':
case '<':
case '>':
case '|':
case '*':
// inserting null value in place of forbidden characters.
str[j] = '\0';
default:
str[j++] = str[i];
}
}
// printing the string.
for(int i = 0;i<n;i++)
cout << str[i];
return;
}
int main(){
char str[] = "Hello: Welco*me/ to Tu>torial?s point|.";
removeforbidden(str);
return 0;
}
ผลลัพธ์
Hello, Welcome to Tutorials point.
คำอธิบายของโค้ดด้านบน
-
ตัวพิมพ์สวิตช์จะใช้ขณะเคลื่อนที่ผ่านสตริงที่แต่ละองค์ประกอบของสตริงถูกตรวจสอบด้วยอักขระตัวพิมพ์
-
หากอักขระเท่ากับอักขระตัวพิมพ์ อักขระนั้นจะถูกแทนที่ด้วยอักขระว่าง
บทสรุป
ในบทช่วยสอนนี้ เราได้พูดถึงการสร้างฟังก์ชันสำหรับการลบอักขระต้องห้าม เช่น [ ' :', ' ? ', ' \ ', ' / ', ' <', '> ', ' | ’, ‘ * ’ ] เราได้พูดคุยถึงแนวทางง่ายๆ ในการแก้ปัญหานี้โดยสำรวจผ่านสตริงและจับคู่อักขระกับอักขระต้องห้าม
เรายังพูดถึงโปรแกรม C++ สำหรับปัญหานี้ ซึ่งเราสามารถทำได้ด้วยภาษาโปรแกรม เช่น C, Java, Python เป็นต้น เราหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์