我判断单词个数的方法,根据空格‘ ’的个数

分情况

  • 当没有单词的时候

判断第一个符号,即a[0] == ‘\0’时,赋值给存储个数的数组

  • 当遇到空格时,只有前面一个字符不是空格字符,后面一个字符不是空格字符,才能判断一个word

注意事项

  • 当输入组数时,最后回车输入缓冲区里面,gets会得到一个回车符号,所以为了消除缓冲区的回车,需要利用fflush函数
  • 当遇到最后一个‘\0’时,要在已有的words数目上加一,比如,"i love you",这儿有2个空格,不加一的话,words数目就2个,显然不符合要求。  
 /*程序的版权和版本声明部分:
*Copyright(c) 2016,电子科技大学本科生
*All rights reserved.
*文件名:ACM_UESTC_OJ60
*程序作用:统计单词个数
*作者:Amoshen
*完成日期:2016.9.26
*版本号:V1.0
*/ #include <stdio.h>
#include <stdlib.h> int main(void)
{
int i,m;
int j;//j为计数器
char *p;
char b[];
int a[]; scanf("%d",&i);
fflush(stdin);//清除缓冲区,避免到后面直接跳过gets for(m = ;m < i;m++)
{
gets(b); if(b[] == '\0')//当不输入任何单词时,最后有回车符号,排除此情况,gets不能读换行符,遇到'\0'结束输入
{
a[m] = ;
continue;
}
else
{
if(b[] == '\0')
{
a[m] = ;
free(p);
continue;
}
} p = b; for(j = ;;p++)
{
if((*p == ' ')&& (*(p - ) != ' ')&&(*(p + ) != ' '))
{
j = j + ;
}
if(*p == '\0'&& j != )
{
j = j + ;
a[m] = j;
break;
}
}
} for(m = ;m < i;m++)
{
printf("%d\n",a[m]);
} return ();
}

【ACM小白成长撸】--计算单词个数的更多相关文章

  1. 【ACM小白成长撸】--贪婪法解硬币找零问题

    question:假设有一种货币,它有面值为1分.2分.5分和1角的硬币,最少需要多少个硬币来找出K分钱的零钱.按照贪婪法的思想,需要不断地使用面值最大的硬币.如果找零的值小于最大的硬币值,则尝试第二 ...

  2. 【小白成长撸】--Fibonacci

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:Fibonacci *程序作用:计算菲薄拉稀数列 *作者 ...

  3. 【小白成长撸】--多项式求圆周率PI

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:多项式求PI *程序作用:计算圆周率PI *作者:Amo ...

  4. 【C++小白成长撸】--(续)单偶数N阶魔方矩阵

    1 /*程序的版权和版本声明部分: **Copyright(c) 2016,电子科技大学本科生 **All rights reserved. **文件名:单偶数N阶魔方矩阵 **程序作用:单偶数N阶魔 ...

  5. 【C++小白成长撸】--(续)双偶数N阶魔阵

    原理: 把双偶数N阶魔阵均分为(N/4)^2个4阶魔阵(4*4) 每个魔阵的对角线都标为"-1",其余位置标为"0" 从第一个位置(a[0][0])从左到右,从 ...

  6. 【C++小白成长撸】--N阶幻方(魔阵)矩阵

    解决方法:1.第一个元素放在第一行中间一列 2.下一个元素存放在当前元素的上一行.下一列. 3.如果上一行.下一列已经有内容,则下一个元素的存放位置为当前列的下一行. 在找上一行.下一行或者下一列的时 ...

  7. 【C++小白成长撸】--矩阵乘法程序

    矩阵乘法是大学矩阵课程中,相比矩阵加减法比较困难的部分. 矩阵乘法的原理: 矩阵乘法在代码中实现 得到目标矩阵的一个元素,涉及两个求和符号,一个求和符号一个for循环,两个求和符号两个for循环,再加 ...

  8. 【小白成长撸】--链栈(C语言版)

    // 链栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include <st ...

  9. 【小白成长撸】--顺序栈(C语言版)

    // 顺序栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h"//test1.0--栈表仅限Int类型 #include <stdio. ...

随机推荐

  1. Canvas 仿百度贴吧客户端 loading 小球

    前言 几天前在简书上看到在一篇文章<Android仿百度贴吧客户端Loading小球>,看了一下作者,他写了两个好玩的 demo,效果图如下: 今天趁着周末有空,用 H5 的 Canvas ...

  2. 用vector实现dijkstra

    #include <stdio.h> #include <string.h> #include <string> #include <vector> # ...

  3. Github 开源:使用升讯威 Mapper( Sheng.Mapper)与 AutoMapper 互补,大幅提高开发效率!

    Github 地址:https://github.com/iccb1013/Sheng.Mapper 在上一篇幅中,简单介绍了 升讯威 Mapper( Sheng.Mapper)[http://www ...

  4. POJ 1308 Is It A Tree? 解题报告

    Is It A Tree? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 32052   Accepted: 10876 D ...

  5. WebSphere之Web Server插件

    WebSphere之Web Server插件 -----------------------------------2013/10/19 这里记录一下WebSphere与IHS的安装集成,和Web S ...

  6. python之路——面向对象

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复 ...

  7. 前端性能优化--图片处理(Css Sprites 与 base64)

    前言: 近期研究着前端性能的优化方面的知识,并以博客记之.之前有相同系列的文章(前端性能优化--图片懒加载(lazyload image)),这次继续是关于图片的处理,css sprites 和 ba ...

  8. SQL存储过程和函数

    SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定 ...

  9. Attribute(特性)与AOP

    提到特性,好多人都会疑惑特性(attribute),和注释有什么区别,简单来说,特性是给机器看的,而注释是给人看的. 特性不仅可以影响编译还可以影响运行,而注释只是为了让人更加容易理解.看懂代码而特别 ...

  10. 【Ubuntu16.04】 install nginx

    1. Download PGP key in order to pass the authentication of the nginx repository signature. click to ...