Remove all characters from string except alphabets in C++

Understanding String Filtering

Filtering a string means removing all non-alphabetic characters from it.

We will explore three different methods to achieve this in C++.

Method 1: Using a Loop

This method iterates through the string and keeps only alphabetic characters.

#include <iostream>
#include <cctype>
#include <algorithm>

using namespace std;

void remove_non_alpha(string &str) {
    int j = 0;
    for (int i = 0; i < str.length(); i++) {
        if (isalpha(str[i])) {
            str[j++] = str[i];
        }
    }
    str.resize(j);
}

int main() {
    string str = "H3ll0 W@rld!";
    remove_non_alpha(str);
    cout << "Filtered String: " << str << endl;
    return 0;
}
            
Input: H3ll0 W@rld!
Output: HllWrld

Method 2: Using Recursion

This method filters the string recursively.

#include <iostream>
#include <cctype>
#include <algorithm>

using namespace std;

void filter_recursive(string &str, int index, int new_index) {
    if (index == str.length()) {
        str.resize(new_index);
        return;
    }
    if (isalpha(str[index])) {
        str[new_index++] = str[index];
    }
    filter_recursive(str, index + 1, new_index);
}

int main() {
    string str = "C0d!ng123";
    filter_recursive(str, 0, 0);
    cout << "Filtered String: " << str << endl;
    return 0;
}
            
Input: C0d!ng123
Output: Cdng

Method 3: Using an Extra String

This method uses an auxiliary string to store only alphabetic characters.

 
#include <iostream>
#include <cctype>
#include <algorithm>

using namespace std;

void filter_with_aux(const string &str, string &result) {
    for (char ch : str) {
        if (isalpha(ch)) {
            result += ch;
        }
    }
}

int main() {
    string str = "P@r0gr@mm1ng";
    string filtered;
    filter_with_aux(str, filtered);
    cout << "Filtered String: " << filtered << endl;
    return 0;
}
            
Input: P@r0gr@mm1ng
Output: Prgrmmng
Strings

Below You will find some of the most important codes in languages like C, C++, Java, and Python. These codes are of prime importance for college semester exams and online tests.

Getting Started

Check whether a character is a vowel or consonant: C C++ Java Python

Check whether a character is an alphabet or not: C C++ Java Python

Find the ASCII value of a character: C C++ Java Python

Length of the string without using strlen() function: C C++ Java Python

Toggle each character in a string: C C++ Java Python

Count the number of vowels: C C++ Java Python

Remove the vowels from a string: C C++ Java Python

Check if the given string is Palindrome or not: C C++ Java Python

Print the given string in reverse order: C C++ Java Python

Remove all characters from string except alphabets: C C++ Java Python

Remove spaces from a string: C C++ Java Python

Replace a sub-string in a string: C C++ Java Python

Count common sub-sequences in two strings: C C++ Java Python

Compare two strings with wildcard support in one of them: C C++ Java Python

List all permutations of a given string in dictionary order: C C++ Java Python

Operations on Strings: C C++ Java Python