2. (程序题, 20分) 统计及大小写转换:户输入-串字符串,请统计出字符串中数字字符的个数;并且将大写字母改为小写,小写字母改为大写。输 出统计的结果和大小写转换后的字符串。 输入格式: kiss me 34now,OK? 输出格式: digit=2,KISS ME 34NOW,ok? 请用c语言
时间: 2024-02-18 22:59:31 浏览: 85
以下是C语言的程序实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char s[100]; // 定义字符数组,用于存储用户输入的字符串
gets(s); // 获取用户输入的字符串
int digit_count = 0; // 计数器,用于统计数字字符的个数
// 遍历字符串中的每个字符
for (int i = 0; s[i] != '\0'; i++) {
if (isdigit(s[i])) { // 如果该字符是数字
digit_count++; // 统计数字字符的个数
} else if (isalpha(s[i])) { // 如果该字符是字母
if (isupper(s[i])) { // 如果该字符是大写字母
s[i] = tolower(s[i]); // 将该字符转换为小写字母
} else { // 否则该字符是小写字母
s[i] = toupper(s[i]); // 将该字符转换为大写字母
}
}
putchar(s[i]); // 输出字符
}
printf("digit=%d\n", digit_count); // 输出统计结果
return 0;
}
```
该程序使用字符数组存储用户输入的字符串,遍历字符串中的每个字符,如果该字符是数字,则计数器加一;如果该字符是字母,则根据该字母的大小写进行大小写转换,并输出转换后的结果。最后输出数字字符的个数。注意,在C语言中,需要使用`gets()`函数来获取用户输入的字符串。
阅读全文