输入一个字符串,将这个字符用中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)c语言编写
时间: 2023-11-27 11:48:59 浏览: 107
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
下面是代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void remove_uppercase(char *str);
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
remove_uppercase(str);
printf("去掉大写字母后的字符串为:%s", str);
return 0;
}
void remove_uppercase(char *str) {
char *p = str;
while (*p != '\0') {
if (isupper(*p)) {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
```
在这个程序中,我们使用 `fgets` 函数从标准输入流中读取一个字符串,并将其传递给 `remove_uppercase` 函数。这个函数使用两个指针 `p` 和 `q` 来操作字符串。`p` 指向当前正在处理的字符,而 `q` 则用于向后移动字符串中的字符。
在 `remove_uppercase` 函数中,我们首先使用 `isupper` 函数检查 `p` 所指向的字符是否是大写字母。如果是,我们就将 `q` 指向 `p`,然后使用一个循环将 `q` 后面的字符向前移动一位。这样,我们就可以将大写字母从字符串中移除。如果 `p` 所指向的字符不是大写字母,则将 `p` 指向下一个字符。
最后,我们在 `main` 函数中输出去掉大写字母后的字符串。
阅读全文