c - (C 编程)while true 循环与 switch case,总是在默认情况下运行
问题描述
我是 C 编程的新手。我正在练习通过无限循环读取用户输入,并检查输入是元音还是常量。我使用开关来检查它,但是当我执行我的代码时,总是执行默认情况,我被卡住了。
如果有人能给我一些建议,将不胜感激,谢谢!
#include <stdio.h>
void checkIfVowel(char *c);
int main()
{
char c;
while (1)
{
printf("Please enter a character: ");
scanf("%c", &c);
checkIfVowel(&c);
}
return 0;
}
void checkIfVowel(char *c)
{
switch (*c)
{
case 'A':
printf("%c is a vowel! \n", *c);
break;
case 'E':
printf("%c is a vowel! \n", *c);
break;
case 'I':
printf("%c is a vowel! \n", *c);
break;
case 'O':
printf("%c is a vowel! \n", *c);
break;
case 'U':
printf("%c is a vowel! \n", *c);
break;
case 'a':
printf("%c is a vowel! \n", *c);
break;
case 'e':
printf("%c is a vowel! \n", *c);
break;
case 'i':
printf("%c is a vowel! \n", *c);
break;
case 'o':
printf("%c is a vowel! \n", *c);
break;
case 'u':
printf("%c is a vowel! \n", *c);
break;
default:
printf("%c is a constant! \n", *c);
break;
}
}
解决方案
简单的改变就足以消除错误。但是,即使使用 if-else 语句对 1 行代码中的所有元音进行逻辑条件,您也可以简单地做到这一点,而不是使用这种 switch case。!去尝试一下!我只附加错误删除的代码
#include <stdio.h>
void checkIfVowel(char *c);
int main()
{
char c;
while (1)
{
printf("Please enter a character: ");
scanf("%c", &c);
checkIfVowel(c);
}
return 0;
}
void checkIfVowel(char* c)
{
switch ((char) c)
{
case 'A':
printf("%c is a vowel! \n", c);
break;
}
}
推荐阅读
- symfony - 在 symfony 2.8 中使用 uploadtask 上传文件 api
- python - Python for 循环仅返回字典的最后一个值
- mysql - 更改 my.ini 后无法启动 MySQL 服务
- apache-kafka - JBPM:当Kafka Topic中有消息时触发业务流程
- google-colaboratory - 如何在不影响互联网中断的情况下在 Colab 中训练模型?
- python - 具有距离阈值停止准则的编辑距离矩阵的单链接聚类
- dart - 如何设置文本字段宽度?
- go - 为什么我在下面的 golang 代码示例中使用 defer 得到 0 和 1
- android - 如何使用 Kotlin 和 Moshi 在 Android 中将 JSON 2019-04-28T00:00:00 格式转换为 GregorianCalender
- ibm-cloud - IBM Cloud Dedicated 是在企业网络中部署我们的应用程序的正确解决方案吗?