C ++程序删除字符串中除字母之外的所有字符

字符串是一维字符数组,以空字符结尾。它可能包含字符,数字,特殊符号等。

下面给出了删除字符串中除字母之外的所有字符的程序。

示例

#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;