用C语言程序设计,编写一个字符串处理函数,其功能是从字符串中删除所有的大写字母或小写字母(若你的学号为奇数,则删除大写字母,否则删除小写字母)。然后编写一个主函数调用,对于一个从键盘输入的一行字符,输出经过该函数处理后的结果 。
时间: 2023-12-03 20:43:49 浏览: 134
以下是实现该功能的字符串处理函数及主函数调用:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void removeChar(char str[]) {
int len = strlen(str);
int i, j;
int isOdd = 1; // 假设学号为奇数
// 判断学号是否为奇数
char *id = "202101234567";
if (strchr(id, str[0])) {
isOdd = ((str[9] - '0') % 2 == 1);
}
// 删除大写或小写字母
if (isOdd) {
for (i = 0, j = 0; i < len; i++) {
if (!isupper(str[i])) {
str[j++] = str[i];
}
}
} else {
for (i = 0, j = 0; i < len; i++) {
if (!islower(str[i])) {
str[j++] = str[i];
}
}
}
str[j] = '\0'; // 加上字符串结束符
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
removeChar(str);
printf("处理后的字符串为:%s", str);
return 0;
}
```
在上面的代码中,我们首先定义了一个 `removeChar` 函数,该函数接受一个字符串参数,然后根据学号的奇偶性删除大写或小写字母。具体来说,我们可以通过字符串的第一个字符和第十个字符来判断学号的奇偶性。如果学号为奇数,则删除大写字母,否则删除小写字母。最后,我们使用指针 `strchr` 来查找字符串中是否包含某个字符。
接下来,我们在 `main` 函数中调用 `removeChar` 函数,将用户输入的字符串作为参数传递给它。最后,我们输出处理后的字符串。
注意,我们使用 `fgets` 函数来读取用户输入的字符串,这可以避免输入过长的字符串导致缓冲区溢出的问题。同时,我们还需要添加一个字符串结束符 `\0`,以确保输出的字符串正确。
阅读全文