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

โปรแกรม C++ เพื่อลบอักขระทั้งหมดในสตริงยกเว้นตัวอักษร


สตริงคืออาร์เรย์อักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ null อาจมีอักขระ ตัวเลข สัญลักษณ์พิเศษ เป็นต้น

โปรแกรมลบอักขระทั้งหมดในสตริง ยกเว้น ตัวอักษร มีดังต่อไปนี้

ตัวอย่าง

#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 หากอักขระในสตริงไม่ใช่ตัวอักษรหรือค่าว่าง อักขระทั้งหมดทางด้านขวาของอักขระนั้นจะถูกเลื่อนไปทางซ้าย 1 ซึ่งทำได้โดยใช้ j ในส่วน inner for loop สิ่งนี้นำไปสู่การลบอักขระที่ไม่ใช่ตัวอักษร ข้อมูลโค้ดที่แสดงให้เห็นว่ามีดังต่อไปนี้ -

ตัวอย่าง

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;