C语言问题,来帮帮我吧

输入一行字符,分别统计出其中英文字母,数字,空格和其他字符的个数

#include<stdio.h> 
int main(){
    int t1=0,t2=0,t3=0,t4=0;
    //t1,t2,t3,t4分别表示字母、数字、空格、其他字符的个数 
    char k; 
    while((k=getchar())!='\n'){
        if(k>='A'&&k<='Z' || k>='a'&&k<='z') t1++;
        else if(k>='0'&&k<='9') t2++;
        else if(k==' ')   t3++;
        else t4++;
    }
    printf("%d %d %d %d",t1,t2,t3,t4);
    return 0;
}

觉得有用的话采纳一下哈

解决思路如下:
1、定义4个分别用于存放英文字母、数字、空格和其他字符个数的变量,并初始化其值。


2、定义一个用于存放读取输入字符的字符变量


3、用一个循环持续读取字符并判断读取到的字符是否是一行的结尾


4、在循环体内,依次判断字母的个数,数字的个数,空格的字数和其他字符的个数
提示:字母、数字、空格可以根据类似于'A'等字符变量来判读,也可通过ASCII码来判断。


5、循环结束后,打印字母、数字、空格、其他字符的个数。


代码:

#include <stdio.h>

int main(void){

    int letters = 0 , numbers= 0,space = 0,others=0;
    char ch;
    

    while((ch=getchar())!='\n'){
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
            letters++;
        }else if(ch>='0'&&ch<='9'){
            numbers++;
        }else if(ch==' '){
            space++;
        }else{
            others++;
        }    
        
    }
    
    printf("letters:%d,numbers:%d,space:%d,others:%d.\n",letters,numbers,space,others);
    
    return 0;
}