c语言程序相关的问题

c语言初学者
编写一个程序
将输入的字母中去掉元音字母(a,e,i,o,u)

例子:
how are you
hw r y

但是不能用scanf,fgets,数组
需要使用getchar putchar
还要包含: int is_vowel(int character);
想问下怎么写

int is_vowel(int character)是题目指定的函数名称吧,可以参考下面的:


#include <stdio.h>
#include <ctype.h>
int is_vowel(int character) {
    if (character == 'a' || character == 'e' ||
        character == 'i' || character == 'o' ||
            character == 'u') {
        return 1;
    }
    return 0;
}

int main(void) {
    int c;
    while( (c=getchar()) != '\n' ){
        if (is_vowel(tolower(c)) == 0) { // tolower, 转换字母为小写
            putchar(c);
        }
    }
}

getchar()将用户输入的字符放到缓冲区中,直到遇到回车符;
我们利用is_vowel函数判断每个输入的字符是否是元音,只需要比较字符间的ascii码即可。
因此,代码如下:


#include "stdio.h"

int is_vowel(int character)
{
    int i;

    /* 判断是否是元音 */
    if (character == 'a' || 
        character == 'e' ||
        character == 'i' ||
        character == 'o' ||
        character == 'u')
    {
        return 1;
    }

    return 0;
}

int main(int argc, char const *argv[])
{
    char ch;
    while ((ch = getchar()) != '\n')
    {
        /* 不是元音就输出 */
        if (!is_vowel(ch))
        {
            putchar(ch);
        }
    }
    
    return 0;
}

看看这个可以不

#include<stdio.h>
int is_vowel(int character);
int main()
{
    int h=0,j=0;
    char t[150]= {1};
    while(t[h]=getchar())
    {
        if(t[h]=='\n') break;
        h++;
    }
    while(t[j]!='\n')
    {
        if(!is_vowel(t[j]))
            putchar(t[j]);
        j++;
    }
    return 0;
}
int is_vowel(int character)
{
    char tem=character;
    if(tem=='a'||tem=='e'||tem=='i'||tem=='o'||tem=='u')
        return 1;
    return 0;
}