[问题描述]输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)[输入形式]输入一个字符串,可能包含有大写英文字母 [输出形式]输出除去大写英文字母的剩余字符串 [样例输入] Hello, World!你好,世界! [样例输出] ello, orld!你好,世界! [样例说明] [评分标准] 3个测试样例
时间: 2023-11-13 16:02:23 浏览: 47
以下是用指针实现的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void remove_uppercase(char *str) {
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0'; // 去掉换行符
remove_uppercase(str);
printf("除去大写字母后的字符串为:%s\n", str);
return 0;
}
```
首先定义了一个 `remove_uppercase` 函数,接受一个指向字符串的指针参数。在函数中,使用两个指针 `p` 和 `q`。`p` 指向当前要判断的字符,如果是大写字母,就使用 `q` 指针将后面的字符往前移动一个位置,相当于删除了这个大写字母。最后再将 `p` 指针指向下一个字符,继续判断。这样就可以在原字符串上直接修改,不需要额外开辟空间。
然后在 `main` 函数中,使用 `fgets` 函数读入字符串,注意要去掉末尾的换行符。再调用 `remove_uppercase` 函数进行处理,最后输出处理后的字符串即可。
阅读全文