输入一个字符串,可能包含有大小写英文字母和汉字将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串(要求用指针做,要求用C语言)
时间: 2023-11-27 16:51:12 浏览: 147
可以使用指针遍历字符串,判断每个字符是否为大写英文字母,如果不是则加入到新字符串中。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char* remove_uppercase(char* str) {
int len = strlen(str);
char* new_str = (char*)malloc(len + 1); // 为新字符串分配空间
char* p = str;
char* q = new_str;
while (*p != '\0') {
if (!isupper(*p)) { // 如果不是大写字母,则加入新字符串中
*q = *p;
q++;
}
p++;
}
*q = '\0'; // 新字符串以 null 结尾
return new_str;
}
int main() {
char str[] = "Hello, World! 你好,世界!";
char* new_str = remove_uppercase(str);
printf("%s\n", new_str); // 输出结果:ello, orld! 你好,世界!
free(new_str); // 记得释放内存
return 0;
}
```
注意,在使用完新字符串后,需要手动释放其内存空间,否则会造成内存泄漏。
阅读全文