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;
}