设计一个C语言程序:由键盘输入一串字符,直到键入回车键时退出;对字母进行大小写转换;若输入的不是字母则报错;并统计出键入的大写字母数、小写字母数和非字母数。

设计一个C语言程序:由键盘输入一串字符,直到键入回车键时退出;对字母进行大小写转换;若输入的不是字母则报错;并统计出键入的大写字母数、小写字母数和非字母数。


#include<stdio.h>
#include<string.h>
int main()
{
char ch;
int sum1=0,sum2=0,sum3=0;
while(scanf("%c",&ch),ch!='\n')
{
if(isalpha(ch))
{
if(islower(ch))
sum1++;
else if(isupper(ch))
sum2++;
}
else
{
sum3++;
printf("error!\n");
}

}
printf("小写字母数:%d\n",sum1);
printf("大写字母数:%d\n",sum2);
printf("非字母数:%d\n",sum3);
return 0;
}

#include <stdio.h>
#include <stdlib.h>


int main(int argc,char *argv[])
{
    char *str = (char *)malloc(sizeof(char)*100);
    int ch_max = 0;
    int ch_min = 0;
    int ch_other = 0;
    int i = 0;

    printf("please entern the str: ");
    scanf("%[^\n]",str);//带空格输入,scanf("%s",str);不带空格输入

    printf("input str = %s\n",str);

    while(str[i] != '\0')
    {
        if( str[i] >= 'a' && str[i] <= 'z')//判断字符为小写
        {
            ch_min ++;//小写统计加一
            str[i] = 'A' + (str[i] - 'a');//转换为大写        
        }
        else if ( str[i] >= 'A' && str[i] <= 'Z')
        {
            ch_max ++;
            str[i] = 'a' + (str[i] - 'A');            
        }
        else
            ch_other++;
        i++;
    
    }

    if(ch_other == 0)//如果没有其他字符,正常输出,否则错误输出
        printf("output str = %s\n",str);
    else
        printf("input error, ch_min = %d , ch_max = %d ,ch_other = %d\n",ch_min,ch_max,ch_other); 

    return 0 ;
}

img

img