C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

アルファベットを除く文字列内のすべての文字を削除するC++プログラム


文字列は、ヌル文字で終了する1次元の文字配列です。文字、数字、特殊記号などが含まれる場合があります。

アルファベットを除く文字列内のすべての文字を削除するプログラムは次のとおりです。

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

  1. Javaで文字列のアルファベット以外の文字をすべて削除しますか?

    split() Stringクラスのメソッドは、区切り文字を表すString値を受け入れ、トークン(単語)の配列に分割して、2つの区切り文字の出現の間の文字列を1つのトークンとして扱います。 たとえば、このメソッドの区切り文字として単一のスペース「」を渡し、文字列を分割しようとしたとします。このメソッドは、2つのスペースの間の単語を1つのトークンと見なし、現在の文字列内の単語の配列(スペースの間)を返します。 文字列に指定された区切り文字が含まれていない場合、このメソッドは文字列全体を要素として含む配列を返します。 正規表現「\\W+」は、文字列内のアルファベット以外のすべての文字(句読

  2. Python-文字と数字を除くすべての文字を削除します

    文字と数字を除くすべての文字を削除する必要がある場合は、正規表現が使用されます。正規表現が定義され、文字列はこの式の後に続きます。 例 以下は同じもののデモンストレーションです import re my_string = "python123:, .@! abc" print ("The string is : ") print(my_string) result = re.sub('[\W_]+', '', my_string) print ("The expected string is :&quo