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

โปรแกรม C++ ลบตัวอักษรที่ไม่ใช่อักษรภาษาอังกฤษออกจากสตริง


String อาจมีตัวอักษร ตัวเลข สัญลักษณ์พิเศษ โปรแกรมนี้ลบตัวอักษรที่ไม่ใช่ A-Z, a-z ออก

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
    char str[100] = "String@123!!";
    int i, j;
    cout << "String before modification: " << str << endl;
    for(i = 0; str[i] != '\0'; ++i) {
        while(!( (str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || str[i] == '\0') ) {
            for(j = i; str[j] != '\0'; ++j) {
                str[j] = str[j+1];
            }
        }
    }
    cout << "String after modification: " << str;
    return 0;
}

ผลลัพธ์

String before modification: String@123!!
String after modification: String

อธิบายอัลกอริทึม

for loop วนทุกตัวอักษร while loop เช็คว่าเป็นอักษรหรือไม่ ถ้าไม่ใช่ ให้ inner for loop เลื่อนตัวอักษรขวามาซ้ายทับทับตัวที่ไม่ใช่อักษร (shift left)

for(i = 0; str[i] != '\0'; ++i) {
    while(!( (str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || str[i] == '\0') ) {
        for(j = i; str[j] != '\0'; ++j) {
            str[j] = str[j+1];
        }
    }
}

แสดงผลหลังปรับปรุง:

cout<<"String after modification: "<<str;