C++ 程序:从 C 风格字符串中删除所有非字母字符


2023年1月21日, Learn eTutorial
1740

在 C++ 中定义字符串。

字符串可以定义为字符序列。在 C++ 中,有两种类型的字符串:

  • 字符串类的对象
  • C 风格字符串(C-strings)

C++ 中的 C 风格字符串

在 C 编程中,构成字符串的字符集合存储在数组中。C++ 编程也支持这种方式。因此它被称为 C 风格字符串。C 风格字符串是以空字符结尾的 char 类型数组。

如何编写一个 C++ 程序来删除字符串中除字母以外的所有字符?

这个 C++ 程序从用户那里获取一个 C 风格字符串输入。为此,声明两个 C 风格字符串:char line[100], astring[100],以及一个整型变量 j=0。然后要求用户输入一个字符串。将用户输入的字符串读取到字符串数组 line 中。要读取包含空格的文本,可以使用 cin.get() 函数。该函数接受两个参数。第一个参数是字符串的名称(字符串第一个元素的地址),第二个参数是数组的最大大小。

现在,用户输入的字符串存储在字符串数组 line 中。我们必须从字符串中提取所有非字母字符。为此,我们必须使用 for 循环将字符串中的每个字符与从 a 到 z 和从 A 到 Z 的字母进行比较。获取每个字符并使用 if 条件与字母进行比较,如果它是字母,则将其添加到 astring 中。

aString[j++] = line[i]; 循环结束后,显示只包含字符的输出字符串。

算法

步骤1:  调用头文件iostream。

步骤 2:使用 namespace std

步骤 3: 打开整数类型的主函数;`int main()`。

步骤 4: 声明两个字符类型字符串:char line[100]; astring[100] 和一个整型变量 j=0;

步骤 5:要求用户输入字符串。

步骤 6:使用函数 cin.getline() 将字符串获取到字符串数组 line 中。

步骤 7:从头开始访问字符串中的字符,并将每个字符与字母 a 到 z 和 A 到 Z 进行比较。

步骤 8: 如果匹配,则将字符存储到字符串 astring[100] 中。

步骤 9:从字符串 astring[100] 中获取没有非字母字符的字符串。

步骤 10:显示字符串;

步骤 11:退出。

C++ 源代码

                                          #include <iostream>
using namespace std;

int main() {
    char line[100], aString[100];
    int j = 0;
    cout << "Enter a string: ";
    cin.getline(line, 100);

    for(int i = 0; line[i] != '\0'; ++i)
    {
        if ((line[i] >= 'a' && line[i]<='z') || (line[i] >= 'A' && line[i]<='Z'))
        {
            aString[j++] = line[i]; 

        }
    }
    aString[j] = '\0';

    cout << "Output String: " << aString;    
    return 0;
}
                                      

输出

Enter a string: l4ea@rne$$45tuto87ria**ls
Output String: learnetutorials