用指针法统计字符串中大写字母小写字母空格及数字的个数
时间: 2023-06-19 14:05:26 浏览: 188
以下是使用指针法统计字符串中大写字母、小写字母、空格和数字的个数的示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0;
cout << "Enter a string: ";
cin.getline(str, 100);
char *ptr = str;
while (*ptr != '\0') {
if (*ptr >= 'A' && *ptr <= 'Z')
upper++;
else if (*ptr >= 'a' && *ptr <= 'z')
lower++;
else if (*ptr == ' ')
space++;
else if (*ptr >= '0' && *ptr <= '9')
digit++;
ptr++;
}
cout << "Upper case letters: " << upper << endl;
cout << "Lower case letters: " << lower << endl;
cout << "Spaces: " << space << endl;
cout << "Digits: " << digit << endl;
return 0;
}
```
首先,我们声明一个字符数组 `str`,用于存储输入的字符串。然后,我们声明四个变量 `upper`、`lower`、`space` 和 `digit`,分别用于存储大写字母、小写字母、空格和数字的个数。
接下来,我们使用 `cin.getline()` 函数从标准输入中读取字符串,并将其存储到 `str` 数组中。
然后,我们声明一个字符指针 `ptr`,并将其初始化为 `str`,指向字符串的第一个字符。接着,我们使用 `while` 循环遍历字符串中的每个字符,直到遇到字符串的结尾符 `\0`。
在循环中,我们使用 `if` 语句判断当前字符是否为大写字母、小写字母、空格或数字,并根据判断结果将相应的计数器加一。
最后,我们输出计数器的值,即为统计结果。
注意,在本示例中,我们使用了字符的 ASCII 码值来进行判断。大写字母的 ASCII 码值范围为 65~90,小写字母的 ASCII 码值范围为 97~122,空格的 ASCII 码值为 32,数字的 ASCII 码值范围为 48~57。
阅读全文