输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)
时间: 2024-05-08 08:18:24 浏览: 69
好的,您的要求我已经了解了。现在回答您的问题:
可以通过遍历输入的字符串,判断每个字符是否是大写英文字母,如果不是就将该字符拷贝到另一个字符串中。最后将这个新字符串输出即可。
以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
void remove_upper(char *str)
{
char *new_str = str; // 新字符串的指针初始化指向原字符串的首地址
while (*str) {
if (!isupper(*str)) { // 判断当前字符是否是大写英文字母
*new_str = *str; // 拷贝当前字符到新字符串中
new_str++; // 新字符串的指针后移一位
}
str++; // 原字符串的指针后移一位
}
*new_str = '\0'; // 在新字符串的末尾添加结束符
}
int main()
{
char str[100];
printf("请输入字符串:");
scanf("%s", str);
remove_upper(str);
printf("处理结果:%s\n", str);
return 0;
}
```
在这个示例中,我们先定义了一个 `remove_upper` 函数,用于移除输入字符串中的大写英文字母。这个函数的参数 `str` 是一个指向输入字符串的指针。
函数内部我们定义了一个新字符串 `new_str` 的指针,并将其初始化为 `str` 的首地址。然后我们使用一个 `while` 循环依次遍历 `str` 字符串中的每个字符,并判断该字符是否是大写英文字母。如果当前字符不是大写英文字母,就将其拷贝到 `new_str` 指向的内存地址中,然后将 `new_str` 指针后移一位,以准备拷贝下一个字符。最后,我们在新字符串的末尾添加一个 `\0` 结束符,以确保新字符串的结尾处不会出现意外字符。
最后,我们在 `main` 函数中调用 `remove_upper` 函数,并将输入的字符串作为参数传递给它。运行程序时,程序会提示用户输入一个字符串,并在输入完成后将结果输出。
阅读全文