c - 让 C 在单个输入中读取多个字符
问题描述
我是 C 新手,我正在寻找一个程序,它接受一个单词,说“Aloha”作为输入,记下单词中的所有元音和辅音,并计算单词中的字符数。
我创建了函数来确定单个字符是夏威夷语中的元音还是辅音,但我不知道如何让程序读取多个字符作为输入。例如,在下面的代码中
#include <stdio.h>
int is_vowel(char);
int is_consonant(char letter);
int main() {
char letter;
int vowel, consonant;
printf("Please input a Hawaiian word:");
scanf("%c", &letter);
vowel = is_vowel(letter);
consonant = is_consonant(letter);
if (vowel == 1) {
printf("%c is a vowel. \n", letter);
} else {
printf("%c is not a vowel. \n", letter);
}
if (consonant == 1) {
printf("%c is a consonant. \n", letter);
} else {
printf("%c is not a consonant. \n", letter);
}
}
当用户输入“Aloha”时,输出为“A 是元音。A 不是辅音”,然后停止。
而不是“A是元音,A不是辅音。l不是元音,l是辅音”等等。
如何让 C 一次读取输入中的所有字符,并获取函数(未包含在示例代码中)来检查每个字符?
谢谢!
解决方案
输入应该是:az 或 AZ
#include <stdio.h>
#include <string.h>
int is_vowel(char ch) {
if(ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u') return 1;
else if(ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U') return 1;
else return 0;
};
int is_consonant(char ch) {
if(is_vowel(ch) == 0) return 1;
else return 0;
};
int main()
{
char letter[100];
int vowel, consonant;
int i, length;
printf("Please input a Hawaiian word: ");
scanf("%[^\n]s", &letter);
length = strlen(letter);
for(i=0; i<length; i++) {
vowel = is_vowel(letter[i]);
consonant = is_consonant(letter[i]);
if (vowel == 1) {
printf("%c is a vowel. \n", letter[i]);
}
else {
printf("%c is not a vowel. \n", letter[i]);
}
if (consonant == 1) {
printf("%c is a consonant. \n", letter[i]);
}
else {
printf("%c is not a consonant. \n", letter[i]);
}
printf("\n");
}
return 0;
}
推荐阅读
- python - 拆分字母数字字符串
- google-apps-script - 谷歌电子表格中的图表文本响应
- javascript - 如何查找文件中所有字符的字符代码
- java - 如何从产品的类别列表页面中提取文本作为 Xpath 并将其添加到 Selenium Java 中的列表中
- logstash - logstash conf - 以 [ 开头并以 ] 结尾的日志行未在 kibana 中显示
- python - 如何在 Python 3 中拆分列表中的多个字符
- excel - 按相对位置将单元格范围值更改为双击单元格的内容
- c# - 任何改进此 EF 查询的方法
- excel - 获取单元格注释并将其存储到字符串变量中
- if-statement - SAS Keep if all, else