7-7 编程求一个字符串中有多少个字母和数字字符。 分数 10 作者 杨军 单位 四川师范大学 编程求一个字符串中有多少个字母和数字字符。 输入格式: 一个字符串。 输出格式: 字符串中有多少个字母和数字字符,是一个整数。 输入样例: 在这里给出一组输入。例如: 123*abc 输出样例: 在这里给出相应的输出。例如: 6
时间: 2025-03-20 20:12:21 浏览: 37
### 方法概述
为了统计字符串中字母和数字的数量,可以采用多种编程语言实现这一功能。以下是基于 C 和 Python 的两种常见解决方案。
---
#### **C语言实现**
在 C 中可以通过 `getchar()` 或者直接处理字符串的方式逐个检查字符属性。以下是一个完整的 C 实现:
```c
#include<stdio.h>
#include<ctype.h>
void count_characters(const char *str) {
int letters = 0, digits = 0;
for (; *str; str++) {
if (isalpha(*str)) { // 判断是否为字母
letters++;
} else if (isdigit(*str)) { // 判断是否为数字
digits++;
}
}
printf("字母数量: %d\n", letters);
printf("数字数量: %d\n", digits);
}
int main() {
const char input[] = "abc123!@#"; // 示例输入
count_characters(input);
return 0;
}
```
上述代码通过循环遍历字符串中的每一个字符,并利用标准库函数 `isalpha` 和 `isdigit` 来分别检测字母和数字[^1]。
---
#### **Python实现**
Python 提供了简洁的方式来完成相同的功能。以下是一段示例代码:
```python
def count_characters(string):
letters = 0
digits = 0
for char in string:
if char.isalpha(): # 检查是否为字母
letters += 1
elif char.isdigit(): # 检查是否为数字
digits += 1
return letters, digits
text = "Hello123World456"
letter_count, digit_count = count_characters(text)
print(f"字母数量: {letter_count}")
print(f"数字数量: {digit_count}")
```
此代码片段同样使用了内置方法 `isalpha` 和 `isdigit` 对字符串中的每个字符逐一分类并计数[^2]。
---
#### **对比分析**
- **性能方面**: 如果仅考虑简单场景下的单线程执行效率,通常情况下 C 更具优势,因为它是编译型语言且底层操作更高效。
- **可读性和开发速度**: Python 显著优于 C,在快速原型设计或者脚本编写时更加方便快捷。
无论选用哪种方式,核心逻辑均围绕着对目标数据集内的每一项元素进行性质判定进而累加至对应类别之中展开讨论[^5]。
---
阅读全文
相关推荐



















