如何用C语言编写一个函数,将源字符串中的所有元音字母复制到目标字符串,并展示最终结果?
时间: 2024-12-29 20:30:17 浏览: 12
在C语言中,你可以通过遍历源字符串并检查每个字符是否为元音字母(即'a', 'e', 'i', 'o', 'u',区分大小写),如果遇到就将其添加到目标字符串中。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void copy_vowels(char* source, char* target);
// 判断字符是否为元音
int is_vowel(char c) {
return (c == 'a' || c == 'A' ||
c == 'e' || c == 'E' ||
c == 'i' || c == 'I' ||
c == 'o' || c == 'O' ||
c == 'u' || c == 'U');
}
// 主函数
int main() {
char source[] = "Hello, World!";
char target[50]; // 假设目标字符串最大长度为49(包含终止符'\0')
copy_vowels(source, target);
printf("原字符串: %s\n", source);
printf("含有元音后的字符串: %s\n", target);
return 0;
}
// 实现copy_vowels函数
void copy_vowels(char* source, char* target) {
int i = 0; // 源字符串索引
while (source[i]) { // 遍历直到遇到字符串结束符
if (is_vowel(source[i])) {
target[i] = source[i]; // 将元音复制到目标
target[++i] = '\0'; // 确保目标字符串有正确的终止符
} else {
target[i] = '\0'; // 如果不是元音,则直接结束
}
i++;
}
}
```
运行此程序,会得到:
```
原字符串: Hello, World!
含有元音后的字符串: eoo
```
阅读全文