[问题描述】输入一个字符串,将这个字符串中 大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做) [输人形式】输入一个字符串,可能包含有大写英文字母 【输出形式】输出除去大写英文字母的剩余字符串 【样例输入】Hello, World! 你好,世界! [样例输出】ello,orld!你好,世界!
时间: 2023-11-27 07:49:39 浏览: 126
以下是一个可能的实现,使用指针遍历字符串,如果遇到大写字母则跳过,否则将字符复制到输出字符串中。
```c
#include <stdio.h>
void remove_uppercase(char* str) {
char* s = str;
char* out = str;
while (*s != '\0') {
if (*s >= 'A' && *s <= 'Z') { // 如果是大写字母则跳过
s++;
} else {
*out = *s; // 复制字符到输出字符串中
out++;
s++;
}
}
*out = '\0'; // 在输出字符串末尾加上字符串结束标志
}
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
remove_uppercase(str);
printf("除去大写字母后的字符串为:%s", str);
return 0;
}
```
注意,上述代码假定输入的字符串以 null 结尾,而且输出的字符串也以 null 结尾。如果输入的字符串没有以 null 结尾,那么程序可能会访问非法内存。另外,如果输出的字符串没有以 null 结尾,那么在打印输出时可能会导致无限循环或者崩溃。
阅读全文