1.判断是元音还是辅音
方法2:
方法3:
2.判断是不是字母
方法1:
方法2:
方法1:
#include<stdio.h>
int main()
{
char arr[]="aAeEiIoOuU";
int ch = 0 ;
while((ch=getchar())!=EOF)
{
int i = 0;
for( i = 0 ; i<10;i++)
{
if(ch == arr[i])
{
printf("Vowel\n");
break;
}
}
if(10==i)
{
printf("Consonant\n");
}
getchar();//处理输入缓冲区中的\n
}
return 0;
}
*通过strchr(const char string,int c),前面是字符串,后面是要查找的字符串,如果后面的字符在前面的字符串中出现过,就会返回字符c在字符串中的位置,如果没有出现过就会返回NULL,注意需要引用string.h头文件
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "AaEeIiOoUu";
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (strchr(arr, ch) != NULL)
{
printf("Vowel");
}
else
{
printf("Consonant\n");
}
getchar();
}
return 0;
}
通过在scanf(" %c",&x),在%c的前面加上空格,会消化掉前面所有的空格,然后读取一个字符,此时就不需要用getchar接收缓冲区的之前的回车符。
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "AaEeIiOoUu";
int ch = 0;
while ((scanf(" %c", &ch) != EOF))//也可以采取这种形式scanf("%c\n",&ch)将\n给读取了!,这样也不需\
后续的getchar()进行吸收
{
if (strchr(arr, ch) != NULL)
{
printf("Vowel");
}
else
{
printf("Consonant\n");
}
}
return 0;
}
自己进行判断
#include<stdio.h>
int main()
{
char ch = 0;
while ((scanf(" %c", &ch) != EOF))//同样,此处也可写成scanf("%c\n",&ch)
{
if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z')
{
printf("%c is an alphabet.\n", ch);
}
else
{
printf("%c is not an alphabet.\n", ch);
}
}
return 0;
}
用库函数进行判断,isalpha(int a),需要引头文件ctype.h,如果字符a是字母,就返回非零的值,如果不是就返回0。
#include<stdio.h>
#include<ctype.h>
int main()
{
char ch = 0;
while ((scanf(" %c", &ch) != EOF))
{
if (isalpha(ch))
{
printf("%c is an alphabet.\n", ch);
}
else
{
printf("%c is not an alphabet.\n",ch);
}
}
return 0;
}
同样的,还有isupper(int c)来判断字符是否是大写字母,islower(int c)来判断是否是小写字母。
tolower(int c)可以将大写字母转换为小写字母,toupper(int c)可以将小写字母转换为大写字母。
注意:不要忘了引头文件ctype.h。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_57304511/article/details/122831379
内容来源于网络,如有侵权,请联系作者删除!