目录
题目1:竞选社长
题目2:最高分数
题目3:判断是元音还是辅音
题目4:判断是不是字母
题目5:字母大小写转换
题目1:竞选社长
 
   💭法1:使用字符串数组
代码实现:
int main()
{
    char arr[100]={0};
    scanf("%s",arr);
    int count1 = 0;
    int count2 = 0;
    int sz = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0;i<sz;i++)
    {
        if(arr[i]=='A')
        {
            count1++;
        }
        else if(arr[i]=='B')
        {
            count2++;
        }
        else if(arr[i]=='\0')
        {
            break;
        }
    }
    if(count1==count2)
    {
        printf("E\n");
    }
    else if(count1>count2)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}💭 法2:使用gets函数获取字符串
int main()
{
    char buf[100]={0};
    gets(buf);
    int count1 = 0;
    int count2 = 0;
    int i = 0;
    while(buf[i]!='\0')
    {
        if(buf[i]=='A')
            count1++;
        if(buf[i]=='B')
            count2++;
        i++;
    }
    if(count1==count2)
    {
        printf("E\n");
    }
    else if(count1>count2)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}💭 法3:只定义一个变量来统计票多少
代码实现:
int main()
{
    char buf[100]={0};
    gets(buf);
    int flag = 0;
    int i = 0;
    while(buf[i]!='\0')
    {
        if(buf[i]=='A')
            flag++;
        if(buf[i]=='B')
            flag--;
        i++;
    }
    if(flag==0)
    {
        printf("E\n");
    }
    else if(flag>0)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}💭 法4:逐个字符读取
代码实现:
int main()
{
    int ch = 0;
    int flag = 0;
    while((ch=getchar())!='\0'&&ch!=EOF)
    {
        if(ch=='A')
        {
             flag++;
        }
        if(ch=='B')
        {
             flag--;
        }
    }
    if(flag==0)
    {
        printf("E\n");
    }
    else if(flag>0)
    {
        printf("A\n");
    }
    else if(flag<0)
    {
        printf("B\n");
    }
    return 0;
}题目2:最高分数
 
   💭 法1:定义整型变量存储数据
代码实现:
int main()
{
    int n1 = 0;
    int n2 = 0;
    int n3 = 0;
    while(~scanf("%d %d %d",&n1,&n2,&n3))
    {
        int max = n1>n2?n1:n2;
        max=max>n3?max:n3;
        printf("%d\n",max);
    }
    return 0;
}💭 法2:定义数组存储数据
代码实现:
int main()
{
    int num[3]={0};
    while(~scanf("%d %d %d",&num[0],&num[1],&num[2]))
    {
        int max = 0;
        int i = 0;
        for(i=0;i<3;i++)
        {
            if(num[i]>max)
            {
                max = num[i];
            }
        }
        printf("%d\n",max);
    }
    return 0;
}
题目3:判断是元音还是辅音
 
   💭 法1 常规解题
代码实现:
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((ch=getchar())!=EOF)
    {
        getchar();//读取回车字符
        for(i=0;i<10;i++)
        {
            if(ch==vowel[i])
            {
                printf("Vowel\n");
                break;
            }
        }
        if(i==10)
        {
            printf("Consonant\n");
        }
    }
    return 0;
}💭 法2:使用strchr库函数,判断一个字符串里面是否出现该字符
如果存在返回该字符在字符串中的地址,如果不存在返回空指针。
代码实现:
#include <stdio.h>
#include <string.h>
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((ch=getchar())!=EOF)
    {
        getchar();
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}#include <stdio.h>
#include <string.h>
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((scanf(" %c",&ch))!=EOF) 
    //%c前面空格处理字符前面的空白字符,也就是消除\n
    {
        //getchar();
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}%c前面加上空格,会消化掉前面所有的空白字符,然后读取下一个字符
#include <stdio.h>
#include <string.h>
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((scanf("%c\n",&ch))!=EOF) 
    {
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}在%c的后边加一个\n,其实在输入时候就会消化掉\n字符,不会在下次读取字符时留下隐患。
题目4:判断是不是字母
 
   💭 法1:常规解题
代码实现:
int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        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库函数判断是不是字母
#include <stdio.h>
#include <ctype.h>
int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        if(isalpha(ch))
        printf("%c is an alphabet.\n",ch);
        else
        printf("%c is not an alphabet.\n",ch);
    }
    return 0;
} 如果ch是字母,返回非零数字,如果ch不是字母,返回0
题目5:字母大小写转换
 
   💭 isupper库函数判断字母是否为大写字母
islower库函数判断字母是否为小写字母
tolower库函数转小写字母
toupper库函数转大写字母
代码实现:
#include <stdio.h>
#include <ctype.h>
int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        if(isupper(ch))//判断是否为大写
        printf("%c\n",tolower(ch));//将大写转换为小写
        if(islower(ch))//判断是否为小写
        printf("%c\n",toupper(ch));//将小写转换为大写
    }
    return 0;
}注意:
本题中使用的所有库函数全部用于处理字符,不能处理字符串











![[引擎开发] 现代图形API - metal篇](https://img-blog.csdnimg.cn/c19d958db1554003a3d8d33cfbf57956.png)







