牛客网初阶练习(6)

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

1.判断是元音还是辅音

方法2:

方法3:

2.判断是不是字母

方法1:

方法2:

1.判断是元音还是辅音

方法1:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char arr[]="aAeEiIoOuU";
  5. int ch = 0 ;
  6. while((ch=getchar())!=EOF)
  7. {
  8. int i = 0;
  9. for( i = 0 ; i<10;i++)
  10. {
  11. if(ch == arr[i])
  12. {
  13. printf("Vowel\n");
  14. break;
  15. }
  16. }
  17. if(10==i)
  18. {
  19. printf("Consonant\n");
  20. }
  21. getchar();//处理输入缓冲区中的\n
  22. }
  23. return 0;
  24. }

方法2:

*通过strchr(const char string,int c),前面是字符串,后面是要查找的字符串,如果后面的字符在前面的字符串中出现过,就会返回字符c在字符串中的位置,如果没有出现过就会返回NULL,注意需要引用string.h头文件

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. char arr[] = "AaEeIiOoUu";
  6. int ch = 0;
  7. while ((ch = getchar()) != EOF)
  8. {
  9. if (strchr(arr, ch) != NULL)
  10. {
  11. printf("Vowel");
  12. }
  13. else
  14. {
  15. printf("Consonant\n");
  16. }
  17. getchar();
  18. }
  19. return 0;
  20. }

方法3:

通过在scanf(" %c",&x),在%c的前面加上空格,会消化掉前面所有的空格,然后读取一个字符,此时就不需要用getchar接收缓冲区的之前的回车符。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. char arr[] = "AaEeIiOoUu";
  6. int ch = 0;
  7. while ((scanf(" %c", &ch) != EOF))//也可以采取这种形式scanf("%c\n",&ch)将\n给读取了!,这样也不需\
  8. 后续的getchar()进行吸收
  9. {
  10. if (strchr(arr, ch) != NULL)
  11. {
  12. printf("Vowel");
  13. }
  14. else
  15. {
  16. printf("Consonant\n");
  17. }
  18. }
  19. return 0;
  20. }

2.判断是不是字母

 方法1:

自己进行判断

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char ch = 0;
  5. while ((scanf(" %c", &ch) != EOF))//同样,此处也可写成scanf("%c\n",&ch)
  6. {
  7. if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z')
  8. {
  9. printf("%c is an alphabet.\n", ch);
  10. }
  11. else
  12. {
  13. printf("%c is not an alphabet.\n", ch);
  14. }
  15. }
  16. return 0;
  17. }

方法2:

用库函数进行判断,isalpha(int a),需要引头文件ctype.h,如果字符a是字母,就返回非零的值,如果不是就返回0。

  1. #include<stdio.h>
  2. #include<ctype.h>
  3. int main()
  4. {
  5. char ch = 0;
  6. while ((scanf(" %c", &ch) != EOF))
  7. {
  8. if (isalpha(ch))
  9. {
  10. printf("%c is an alphabet.\n", ch);
  11. }
  12. else
  13. {
  14. printf("%c is not an alphabet.\n",ch);
  15. }
  16. }
  17. return 0;
  18. }

同样的,还有isupper(int c)来判断字符是否是大写字母,islower(int c)来判断是否是小写字母。

tolower(int c)可以将大写字母转换为小写字母,toupper(int c)可以将小写字母转换为大写字母。

注意:不要忘了引头文件ctype.h。

相关文章