使用c语言编写代码:编写函数,用数组或指针作为函数参数,将字符串中的非小写字母全部删除。在主函数中输出删除后的字符串。测试数据有多组,第1行的正整数T表示测试数据的组数,每组数据单独占一行,仅包含一个字符串,字符串长度不超过100。对于每组测试数据,输出结果单独占一行,为删除非小写字母后的字符串。并且不输出你所输入的数据
时间: 2024-03-12 14:46:23 浏览: 44
C语言程序设计-从字符串中删除指定的字符;同一字母的大、小写 按不同字符处理;
5星 · 资源好评率100%
以下是使用指针作为函数参数的代码实现:
```c
#include <stdio.h>
#include <ctype.h> // 需要用到 islower 函数
void delete_non_lower(char *str) { // 接收一个字符指针作为参数
char *p = str; // 新建一个字符指针指向字符串的开头
while (*p != '\0') { // 循环遍历整个字符串
if (!islower(*p)) { // 如果该字符不是小写字母
char *q = p; // 新建一个指针指向该位置
while (*q != '\0') { // 循环将后面的字符向前移动
*q = *(q+1);
q++;
}
} else {
p++; // 如果该字符是小写字母,则继续往后遍历
}
}
}
int main() {
int T;
scanf("%d", &T);
while (T--) {
char str[101];
scanf("%s", str);
delete_non_lower(str);
printf("%s\n", str);
}
return 0;
}
```
其中,`delete_non_lower` 函数接收一个字符指针作为参数,循环遍历整个字符串,如果该字符不是小写字母,则将后面的字符向前移动,直到将该字符删除;如果该字符是小写字母,则继续往后遍历。在主函数中,先读入测试数据的组数,然后循环读入每组数据,调用 `delete_non_lower` 函数进行处理,并输出处理后的字符串。
阅读全文