原文: https://www.programiz.com/c-programming/examples/vowel-consonant
要理解此示例,您应该了解以下 C 编程主题:
五个字母A
,E
,I
,O
和U
称为元音。 除这 5 个元音以外的所有其他字母称为辅音。
该程序假定用户将始终输入字母字符。
#include <stdio.h>
int main() {
char c;
int lowercase, uppercase;
printf("Enter an alphabet: ");
scanf("%c", &c);
// evaluates to 1 if variable c is lowercase
lowercase = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
// evaluates to 1 if variable c is uppercase
uppercase = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
// evaluates to 1 if c is either lowercase or uppercase
if (lowercase || uppercase)
printf("%c is a vowel.", c);
else
printf("%c is a consonant.", c);
return 0;
}
输出
Enter an alphabet: G
G is a consonant.
用户输入的字符存储在变量c
中。
如果c
是小写元音,则lowercase
变量的值为 1(真),而对于其他任何字符,则其值为 0(假)。
同样,如果c
是大写元音,则uppercase
变量的值为 1(真),而对于其他任何字符,则其值为 0(假)。
如果lowercase
或uppercase
变量为 1(真),则输入的字符为元音。
但是,如果lowercase
和uppercase
变量均为 0,则输入的字符为辅音。
注意:该程序假定用户将输入字母。 如果用户输入非字母字符,则显示该字符为常数。
要解决此问题,我们可以使用isalpha()
函数。islapha()
函数检查字符是否为字母。
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
int lowercase, uppercase;
printf("Enter an alphabet: ");
scanf("%c", &c);
// evaluates to 1 if variable c is lowercase
lowercase = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
// evaluates to 1 if variable c is uppercase
uppercase = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
// Show error message if c is not an alphabet
if (!isalpha(c)) {
printf("Error! Non-alphabetic character.");
}
// if c is an alphabet
else {
// evaluates to 1 if c is either lowercase or uppercase
if (lowercase || uppercase)
printf("%c is a vowel.", c);
else
printf("%c is a consonant.", c);
}
return 0;
}
现在,如果用户输入非字母字符,您将看到:
Error! Non-alphabetic character.