用C语言写“输入一个字符串,删除该字符串中的小写字母,然后输出”使用数组和指针
时间: 2025-01-26 22:07:24 浏览: 40
好的,我可以为您提供一个使用C语言实现这个功能的示例程序。这个程序将使用数组和指针两种方法来处理字符串。以下是代码实现:
```c
#include <stdio.h>
#include <ctype.h>
// 使用数组的方法
void removeLowercaseArray(char str[]) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++) {
if (!islower(str[i])) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
// 使用指针的方法
void removeLowercasePointer(char *str) {
char *src = str;
char *dst = str;
while (*src) {
if (!islower(*src)) {
*dst++ = *src;
}
src++;
}
*dst = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin);
// 移除换行符
str[strcspn(str, "\n")] = '\0';
printf("原始字符串: %s\n", str);
// 使用数组方法
removeLowercaseArray(str);
printf("删除小写字母后的字符串 (数组方法): %s\n", str);
// 重新输入字符串
printf("请再次输入一个字符串: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
// 使用指针方法
removeLowercasePointer(str);
printf("删除小写字母后的字符串 (指针方法): %s\n", str);
return 0;
}
```
这个程序首先定义了两个函数:`removeLowercaseArray` 和 `removeLowercasePointer`。前者使用数组索引来处理字符串,后者使用指针算术来处理字符串。
在 `main` 函数中,我们首先提示用户输入一个字符串,然后调用这两个函数来处理字符串并输出结果。接着,我们再次提示用户输入一个字符串,并再次处理和输出结果,以展示两种方法的区别。
这个程序使用了 `fgets` 函数来读取字符串,这样可以避免 `scanf` 函数在读取包含空格的字符串时遇到的问题。我们还使用 `strcspn` 函数来移除输入字符串末尾的换行符。
`islower` 函数用于检查字符是否为小写字母。如果不是小写字母,字符就会被保留;否则,它会被删除。
这两种方法都能达到相同的效果,你可以根据自己的喜好选择使用数组还是指针。
阅读全文
相关推荐

















