字符串是一维字符数组,以空字符结尾。它可能包含字符,数字,特殊符号等。
下面给出了删除字符串中除字母之外的所有字符的程序。
#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循环中完成的。如果字符串中的字符不是字母或null,则该字符右侧的所有字符都将向左移动1。这是使用内部for循环中的j来完成的。这导致删除非字母字符。演示这的代码片段如下-
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;