解题思路以及注意事项:

  1. 这里大家可能想到scanf()以空格或者回车为结束标准就头疼了,不要紧,我给大家推荐一个函数,可以接收字符串,仅仅以回车结束,它就是gets();功能强大到爆炸。

  2. 其他都是一些比较常规的,看起来比较长,其实非常容易懂。

  3. 还是跟以前一样,别忘了中英文的区别,注意别忘了分号,其他就简单了。

实例代码:

#include"stdio.h"
int main()
{
    int i,word=0,number=0,space=0,others=0,zero=0,sum=0;
    char words[100];
    gets(words);
    for(i=0;i<100;i++){
        if(words[i]=='\0')
        {
            break;
        }
        sum++;
    }
    for(i=0;i<sum;i++){
        if('a'<=words[i]&&words[i]<='z'||'A'<=words[i]&&words[i]<='Z')
        {
            word++;
        }
        else if('0'<=words[i]&&words[i]<='9')
        {
            number++;
        }
        else if(words[i]==' ')
        {
            space++;    
        }
        else if(words[i]=='\0')
        {
            zero++;
        }
        else
        {
            others++;
        }
    }
    printf("%d %d %d %d",word,number,space,others);
    return 0;
}

还有什么不懂的请在下方评论区留言,小方会在看到的第一时间为您解疑

点赞(8)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 12 条评论

小小白 3年前 回复TA
@bbg 计算长度
maikeis 3年前 回复TA
@bbg 为空退出循环,不为空Sum++
晨曦 4年前 回复TA
你的函数呢?
bbg 4年前 回复TA
for(i=0;i<100;i++){
        if(words[i]=='\0')
        {
            break;
        }
楼主,请问这几句代码的作用是什么捏?
        sum++;
    }
图图 6年前 回复TA
#include<stdio.h> 
int main ()
{
	int i,m=0,n=0,p=0,q=0;
	char a[100];
	gets(a);
	for(i=0;i<100;i++)
	{
		while(a[i]!='\n')
		{
		if(a[i]==' ')
		n=n+1;
		if((65>=a[i]>=90)||(97>=a[i]>=122))
		{
			m=m+1;
		}
		
		if(48>=a[i]>=57)
		q=q+1;
		else p=p+1;}
	}
	printf("%d %d %d %d",m,q,n,p);
return 0;
}为什么不对呢?
Mister-小方 7年前 回复TA
@帝国时代 恩恩,好
帝国时代 7年前 回复TA
@帝国时代 好哒,看到楼下的评论了
帝国时代 7年前 回复TA
不是说函数吗?
stronger 7年前 回复TA
@hello 纯属个人观点 (没有查过资料)   gets函数原型  char *gets(char *string) 本身就进行过传递参数
Mister-小方 7年前 回复TA
@hello 我觉得你应该可以写出传参的,看看谁写的溜