输入一串西文字符,分别统计出其中英文大写字母、英文小写字母、空格、数字和其他字符的个数。
时间: 2023-04-22 09:02:04 浏览: 182
可以使用循环遍历输入的字符串,对每个字符进行判断,根据其ASCII码值来判断其属于哪一类字符。具体实现如下:
```
string = input("请输入一串字符:")
upper_count = 0 # 英文大写字母个数
lower_count = 0 # 英文小写字母个数
space_count = 0 # 空格个数
digit_count = 0 # 数字个数
other_count = 0 # 其他字符个数
for char in string:
if char.isupper():
upper_count += 1
elif char.islower():
lower_count += 1
elif char.isspace():
space_count += 1
elif char.isdigit():
digit_count += 1
else:
other_count += 1
print("英文大写字母个数:", upper_count)
print("英文小写字母个数:", lower_count)
print("空格个数:", space_count)
print("数字个数:", digit_count)
print("其他字符个数:", other_count)
```
运行程序后,输入一串字符,程序会输出该字符串中英文大写字母、英文小写字母、空格、数字和其他字符的个数。
相关问题
假设用户可能使用的输入仅包含西文字母,即英文大小写字母a~zA~Z和特殊字符,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中特殊字符不进行加密处理。
凯撒密码是一种简单的替换加密技术,通过将字母表中的每个字符按照固定位移进行替换来达到加密的目的。假设位移值(key)是固定的,我们可以创建一个函数来实现这个过程。以下是一个Python程序示例:
```python
def caesar_cipher_encrypt(input_string, key):
encrypted_string = ""
for char in input_string:
if char.isalpha():
shift = key % 26
if char.islower():
new_char = chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
new_char = chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
# 对于非字母字符,保持不变
new_char = char
encrypted_string += new_char
return encrypted_string
# 用户输入
plaintext = input("请输入明文字符串 (只包含英文大小写字母): ")
shift = int(input("请输入位移值: "))
encrypted_text = caesar_cipher_encrypt(plaintext, shift)
print(f"加密后的密文: {encrypted_text}")
用getchar函数输人- - 段含西文字符和中文字符的正文,统计字数、字符数和行数。字是指一个中文字符或一个西文字符串(由空白符分隔);字符是指一个西文字符或一个中文字符;空白符是指空格或回车或水平制表Tab。用C语言帮我写一段代码完成这个功能
在C语言中,你可以使用`getchar()`函数读取用户的输入,并遍历文本逐个字符处理。这里是一个简单的示例代码,用于统计字数、字符数和行数:
```c
#include <stdio.h>
#include <ctype.h> // 包含ctype.h库用于检查字符类型
int main() {
int char_count = 0, word_count = 0, line_count = 0;
int c;
while ((c = getchar()) != EOF) { // 循环直到用户输入结束标志EOF
if (isblank(c)) { // 判断是否为空白字符
if (line_count > 0) { // 如果上一行不为空
word_count += 1; // 结束一个词,加一到字数
}
line_count = 0; // 新行开始
} else {
char_count++; // 计算字符数
if (!isascii(c)) { // 判断非ASCII字符(可能是中文)
word_count++;
}
line_count++;
}
}
// 最后一条可能不为空
if (line_count > 0) {
word_count += 1;
}
printf("总字符数: %d\n", char_count);
printf("单词数: %d\n", word_count);
printf("行数: %d\n", line_count);
return 0;
}
```
在这个代码里,我们通过`isblank()`函数判断字符是否为空白,`isascii()`则判断是否为ASCII字符(包括西文字符)。注意,这只是一个基本的实现,对于中文字符的识别,由于其编码复杂性,此处仅简单地按每个字符计算。
阅读全文