编写一个函数,将一个字符串中的元音字母按顺序逐个提取出来并写到一个新的字符串中;在main函数中调用这个函数,并输出新字符串。原始字符串由键盘输入 C语言
时间: 2024-12-13 21:22:50 浏览: 18
消除字符串重复字母(栈实现)
在C语言中,你可以创建一个函数`extract_vowels`来实现这个功能。首先,我们需要一个包含所有元音字母的数组,然后遍历输入字符串,检查每个字符是否是元音,如果是,则添加到结果字符串中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义元音字母
const char vowels[] = "aeiouAEIOU";
// 函数来提取并返回元音字符组成的字符串
char* extract_vowels(char *input) {
int len = strlen(input);
char *result = (char*)malloc((len + 1) * sizeof(char)); // 动态分配空间
result[0] = '\0'; // 初始化结果字符串
for (int i = 0; i < len; i++) {
if (strchr(vowels, input[i])) { // 检查当前字符是否是元音
strcat(result, input[i]); // 如果是,追加到结果字符串
}
}
return result;
}
int main() {
printf("请输入一个字符串: ");
char input[100];
fgets(input, sizeof(input), stdin); // 读取用户输入,忽略换行符
input[strcspn(input, "\n")] = '\0'; // 清除换行符
char *vowels_str = extract_vowels(input);
printf("提取的元音字符串是: %s\n", vowels_str);
free(vowels_str); // 释放内存
return 0;
}
```
在这个程序中,`extract_vowels`函数接收一个字符串作为输入,然后使用`strchr`函数检查每个字符是否在元音数组中。如果找到,就使用`strcat`将其追加到结果字符串。`main`函数中通过`fgets`获取用户的输入,处理后传递给`extract_vowels`,并将结果打印出来。
阅读全文