这份写法错在哪里?郁闷了

1.题目:写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。
输入
一行字符串
输出
顺序输出其中的元音字母(aeiou)
样例输入
abcde
样例输出
ae

**尝试了各种方法,编译运行都是提示运行错误50%,点开又没有辅助办法,遂上来问问大家。

尝试的办法:
1.修改程序只输出不相同的元音字母,结果也是错误50%
2.不在函数中输出结果,也是一样;
3.用putchar 和 puts输出也是一样;
自己试了好多字符串,结果都是正确的呀。
**

#include <stdio.h>
#include <string.h>
int f1 (char a[],char b,int lim);
char getline(char s[],char a[]);

int main()
{
  char a[15];
  char b[15];
  char c[6];
  gets (a);
  getline (b,a);
  int len = strlen (b);
  int i=0;
  int j=0;
  int x=0;
  puts(b);
  return 0;
}

int f1 (char a[],char b,int lim){ //将当前欲输出的项与C【】做比较,不存在返回1,存在返回0
  int i=0;
  int j=0;
  int equ=1;
  for(i=0;i<lim;i++){
    if(b == a[i]) {
      equ=0;
      break;
    }
    if(b != a[i]) {
      equ =1;
    }
  }
  return equ;
}

char getline(char s[],char a[]){
  int i=0;
  int k=0;
  while (a[i]){
    if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o'\
||a[i] == 'u' ||a[i] == 'A' || a[i] == 'E' || a[i] == 'I' || a[i] == 'O'\
|| a[i] == 'U')
    {
    s[k]=a[i];
    k++;
    }
    i++;
  }
  s[k]='\0';
  return *s;
}


3个回答

题目怎么说的
char a[15];
char b[15];
char c[6];
确定输入最大只有14个字母么?

if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o'\
最后的斜杠不需要,下一行类似

已解决,用gets()输入的时候,是不会读取\n的,我当成了getchar()了。导致函数循环的时候初始值出错,

用gets()输入的时候,是不会读取\n的,我当成了getchar()了。导致函数循环的时候初始值出错,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问