牛客网初阶练习(6)

x33g5p2x  于2022-02-09 转载在 其他  
字(1.8k)|赞(0)|评价(0)|浏览(133)

1.判断是元音还是辅音

方法2:

方法3:

2.判断是不是字母

方法1:

方法2:

1.判断是元音还是辅音

方法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;
}

方法2:

*通过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;
}

方法3:

通过在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;
}

2.判断是不是字母

 方法1:

自己进行判断

#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;
}

方法2:

用库函数进行判断,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。

相关文章