题目链接:http://codeup.cn/problem.php?cid=100000570&pid=1
题目描述
写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。
输入
一个字符串(一行字符)。
输出
该字符串所有元音字母构成的字符串。行尾换行。
样例输入
CLanguage
样例输出
auae
代码
#include<stdio.h>
#include<string.h>
void vowels(char s1[], char s2[]){
int n = strlen(s1);
int j = 0;
for(int i = 0; i < n; i ++){
switch (s1[i]){
case 'a': s2[j++] = 'a'; break;
case 'e': s2[j++] = 'e'; break;
case 'i': s2[j++] = 'i'; break;
case 'o': s2[j++] = 'o'; break;
case 'u': s2[j++] = 'u'; break;
case 'A': s2[j++] = 'A'; break;
case 'E': s2[j++] = 'E'; break;
case 'I': s2[j++] = 'I'; break;
case 'O': s2[j++] = 'O'; break;
case 'U': s2[j++] = 'U'; break;
default: break;
}
}
}
int main() {
char s1[20] = {0}, s2[20] = {0}; //注意:初始化,不能先定义再给它赋值,那样相当于只赋值了s1[20]
gets(s1);
vowels(s1, s2); //若出现 烫烫烫烫烫烫烫,vs中未初始化的栈空间用0xCC填充,未初始化的堆空间用0xCD填充。
puts(s2); //而0xCCCC和0xCDCD在中文GB2312编码中分别对应“烫”字和“屯”字。
return 0; //解决方法 1>.给数组初始化(本题用) 2>.加结束字符 s2[j]='\0'
}