C语言 输入5个字符(用循环结构),编写函数,检测是否为空格,是否为数字,是否为元音。

发布网友 发布时间:2022-04-23 00:39

我来回答

5个回答

热心网友 时间:2023-10-09 10:32

#include <stdio.h>
#include <conio.h>

int main (void) {
char c[5];
int i;

for (i=0; i<5; i++) {
c[i] = getchar ();
}
for (i=0; i<5; i++) {
if (c[i] == 'a' || c[i] == 'e' || c[i] == 'i' || c[i] == 'o' || c[i] == 'u' ||  
c[i] == 'A' || c[i] == 'E' || c[i] == 'I' || c[i] == 'O' || c[i] == 'U')
printf ("c[%d]%c是元音\n", i, c[i]);
else if (c[i] == ' ')
printf ("c[%d]%c是空格\n", i, c[i]);
else if (c[i] >= '0' && c[i]<= '9')
printf ("c[%d]%c是数字\n", i, c[i]);
else
printf ("c[%d]%c是其他\n", i, c[i]);
}

getch (); /*屏幕暂留*/
return 0;
}

热心网友 时间:2023-10-09 10:32

代码即时刷新显示。

每次输入一个字符(按下按键就开始判断),完成判断,并实时显示在对应字符下方。

#include <stdio.h>
#include <conio.h>
#include <windows.h>
int main()
{
    int i,j;
    char cs[5]={0};
    for(i=0;i<5;i++)
    {
        cs[i]=getch();
        system("cls");
        for(j=0;j<5;j++)
            printf("%3c  ",cs[j]?cs[j]:' ');
        printf("\n");
        for(j=0;j<5;j++)
            printf("%s%s%s",cs[j]==' '?"空格 ":"",cs[j]>='0' && cs[j]<='9'?"数字 ":"",cs[j]=='a'||cs[j]=='e'||cs[j]=='i'||cs[j]=='o'||cs[j]=='u'?"元音 ":"" );
    }

    return 0;
}

热心网友 时间:2023-10-09 10:33

#include <stdio.h>

int main(int argc, char const *argv[])
{
char ch = 0;
int i = 5;
   while(i--)
   {
   ch = getchar();
   //getchar();//用于吃掉缓存中的字符,比如回车
   if(ch >= '0' && ch <= '9')   
printf("%c is num\n",ch);
else if('a' == ch || 'e' == ch ||'i' == ch ||'o' == ch ||'u' == ch ) 
 printf("%c is vowel\n",ch);  
else if(ch==' ')
  printf("%c is space\n",ch);
else   
printf("%c is other char\n",ch);

   }
}

热心网友 时间:2023-10-09 10:33

英语的元音就5个 a,e,i,o,u char ch; scanf("%c",&ch); if('a' == ch || 'e' == ch ||'i' == ch ||'o' == ch ||'u' == ch ) { printf("%c是元音",ch); } else { printf("%c不是元音",ch); } 我这个逻辑没有只是判断了字符是小写的情况,如果是大写,那还需要加入判断大写的逻辑追问主要是怎么加入循环结构不太明白

热心网友 时间:2023-10-09 10:34

scanf("%s",a[i]); 用%s 的话遇到空格或回车就会停止读取的了- -
连读都读不进去,怎么统计,话说那个空格还在缓存里面,所以后续的scanf根本都没有读取- -
gets的话是遇见回车才停止读取。。。另外呢 "12345670"
上面那个字符串的长度是10,但是字符数组的长度是11,因为上面的字符串实际上是
"12345670\0" 所以实际上放了11个字符。你用10个字符的数组存放11个字符,出错是很正常的= =||
\0 是空字符,表示一个字符串结束了,实际上基本所有字符串处理函数都是遇到 \0才停止的。。。所以要是自己手工构造字符串的话,记得把 '\0'算上。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com