Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชันสำหรับลบอักขระที่ запрещен (Forbidden Characters) ใน C++

อภิปรายวิธีการลบฟังก์ชันที่จะลบอักขระที่ запрещен (forbidden characters) เช่น [ ':', '?', '\', '/', '<', '>', '|', '*' ] จากสตริง ตัวอย่างเช่น:

Input: str = "Hello: Welco*me/ to Tu>torials point|."
Output: "Hello Welcome to Tutorials point."
คำอธิบาย: สตริงอินพุตมีอักขระที่ запрещен ซึ่งถูกลบออก และสตริงใหม่ไม่มีอักขระที่ запрещен

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;

// ฟังก์ชันลบอักขระที่ запрещен
void removeforbidden(char* str){
    int j = 0;
    int n = strlen(str);
    // เดินทางผ่านสตริงและค้นหาอักขระที่ запрещен
    for(int i = 0; i < n; i++){
        switch(str[i]){
            case '/':
            case '\\':
            case ':':
            case '?':
            case '"':
            case '<':
            case '>':
            case '|':
            case '*':
                // แทรกค่า null แทนอักขระที่ запрещен
                str[j] = '\0';
                break;
            default:
                str[j++] = str[i];
        }
    }
    // พิมพ์สตริง
    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.

คำอธิบายโค้ด

  • ใช้ Switch case ขณะเดินทางผ่านสตริง ซึ่งแต่ละองค์ประกอบของสตริงจะถูกตรวจสอบกับ case characters
  • ถ้าอักขระเท่ากับ case character แล้ว จะถูกแทนที่ด้วย null character

สรุป

ในบทช่วยสอนนี้ เราสร้างฟังก์ชันสำหรับลบอักขระที่ запрещен เช่น [ ':', '?', '\', '/', '<', '>', '|', '*' ] เราอภิปรายวิธีง่ายๆ ในการแก้ปัญหานี้โดยการเดินทางผ่านสตริงและจับคู่อักขระกับอักขระที่ запрещен

เรายังอภิปรายโปรแกรม C++ สำหรับปัญหานี้ซึ่งเราสามารถทำได้กับภาษาโปรแกรมมิ่งอย่าง C, Java, Python ฯลฯ เราหวังว่าบทช่วยสอนนี้จะเป็นประโยชน์