C语言问题,为什么显示答案错误? 5

题目描述写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。输入一... 题目描述
写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。
输入
一个字符串(一行字符)。
输出
该字符串所有元音字母构成的字符串。行尾换行。
样例输入
CLanguage
样例输出
auae
提示:可以采用如下函数原型
void vowels(char s1[], char s2[]);

我的代码如下:

#include <stdio.h>

void vowels(char s1[], char s2[]){
int i,m;
m = 0;
for(i = 0; i < strlen(s1); i++){
if(s1[i] == 97 || s1[i] == 101 || s1[i] == 105 || s1[i] == 111 || s1[i] ==117){
s2[m] = s1[i];
m++;
}
}
s2[m+1] = '\0';
}

int main(){
char str1[10] ;
char str2[10] ;

scanf("%s", str1);
vowels(str1,str2);
printf("%s\n", str2);

return 0;
}
展开
 我来答
RLXXQ
2018-10-27 · TA获得超过1153个赞
知道小有建树答主
回答量:833
采纳率:51%
帮助的人:236万
展开全部
#include <stdio.h>
#include <string.h>
void fun(char s1[], char s2[]) {
    char *p = NULL;
    int i = 0, j = 0;
    int q = 0;
    p = s1;
    for (; i < strlen(s1); i++) {
        if (*p == 'a' || *p == 'A' || *p == 'e' || *p == 'E' || *p == 'i'
                || *p == 'I' || *p == 'o' || *p == 'O' || *p == 'u'
                || *p == 'U') {
            s2[j] = *p;
            j++;
        }
        p++;
    }
    for (q = 0; q < j; q++)
        printf("%c", s2[q]);
}
int main(void) {
    char s1[] = { "abecdefuuA" };
    char s2[10];
    fun(s1, s2);
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式