这道c语言题目是让你编写一个字符串处理函数,其功能可以将字符串中删除所有的大写字母或小写字母(如果你的学号为奇数,则删除大写字母,否则删除小写字母)。然后编写一个主函数调用,对于一个从键盘输入的一行字符,经过该函数处理后输出。
时间: 2024-03-10 12:46:42 浏览: 168
好的,这个问题的解决方案如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void process_string(char *str) {
int len = strlen(str);
int i;
int is_odd = 0;
// 获取学号末尾数字
int id = 12345678; // 假设你的学号是12345678
int last_digit = id % 10;
if (last_digit % 2 == 1) {
is_odd = 1;
}
// 删除大写或小写字母
if (is_odd) {
for (i = 0; i < len; i++) {
if (isupper(str[i])) {
str[i] = ' ';
}
}
} else {
for (i = 0; i < len; i++) {
if (islower(str[i])) {
str[i] = ' ';
}
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
process_string(str);
printf("处理后的字符串为:%s", str);
return 0;
}
```
这个程序中,我们首先定义了一个名为 `process_string` 的函数,该函数接收一个指向字符串的指针作为参数,然后根据学号末尾数字的奇偶性来删除该字符串中的大写或小写字母。具体实现是通过循环遍历字符串中的每个字符来实现的,如果该字符是大写或小写字母,则将其替换为空格。值得注意的是,我们使用了 `isupper` 和 `islower` 函数来判断一个字符是否为大写或小写字母。
在 `main` 函数中,我们首先使用 `fgets` 函数从键盘读取一个字符串,然后调用 `process_string` 函数来处理该字符串,并最终输出处理后的结果。
阅读全文