Chuỗi là một mảng ký tự một chiều được kết thúc bằng ký tự null. Nó có thể chứa các ký tự, chữ số, ký hiệu đặc biệt, v.v.
Một chương trình để xóa tất cả các ký tự trong một chuỗi ngoại trừ các bảng chữ cái được đưa ra như sau.
Ví dụ
#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; }
Đầu ra
String before modification: String@123!! String after modification: String
Trong chương trình trên, việc sửa đổi chuỗi được thực hiện trong một vòng lặp for. Nếu ký tự trong chuỗi không phải là một bảng chữ cái hoặc null, thì tất cả các ký tự ở bên phải của ký tự đó sẽ được chuyển sang bên trái 1. Điều này được thực hiện bằng cách sử dụng j trong vòng lặp for bên trong. Điều này dẫn đến việc loại bỏ ký tự không phải chữ cái. Đoạn mã chứng minh điều này như sau -
Ví dụ
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]; } } }
Sau khi sửa đổi, chuỗi được hiển thị. Điều này được hiển thị bên dưới -
cout<<"String after modification: "<<str;