สตริงคืออาร์เรย์อักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ 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;