1.思路分析:

单词的数目可以有空格出现的次数来进行统计,判定原则:当出现“ 空格+字母* ”的组合是,认定一个单词出现。但是需要注意以下几点:

(1)字符串默认:字符串中只包含空格和字母2种字符,不会出现别的特殊字符;

(2)字符开头的空格不在计算内:因此fspace初始值为1

2.实现代码:

#include <stdio.h>
#include <stdlib.h>int main()
{char *p = NULL;char *q = NULL;int num = 0;int fspace = 1;                 //注意:fspace初始化必须是1;p = (char*)malloc(1);gets(p);q = p;while(*q != '\0'){if(*q == ' '){fspace = 1;}else{if(fspace==1){num++;fspace = 0;        //注意:一定要将fspace清0;}}q++;}printf("num = %d",num);free(p);p = q = NULL;return 0;
}

3.注意事项: 
(1)malloc需要和free配合使用,避免内存泄露; 
(2)指针在使用完毕后,需要指向NULL,避免成为野指针; 
(3)注意p的值,以及p+1的值: 
            p的值:malloc调用后,系统在堆中分配的一个字节内存的地址address。 
            p +1:即上述address+1; 
    但是:系统分配时,可以确定address对应的内存是空闲态(未被使用),因此分配给p;但是并不能确定address+1的内存也是空闲态。当值给p分配一个字节内存但是其指向一个字符串时,字符串会依次保存在address与其之后的部分内存中。因此,本人认为:p = (char*)malloc(1)操作是有风险的。 
(4)C语言中:在不确定输入字符串的长度时,应该将缓存区设置大一些,设置1024,即1k byte(虽然还是可能会出现越界)。可以采用2种方式保存字符串:数组和字符串指针。 
具体方式:char array[1024];或char p = (char)malloc(1024)等于char p = (char)malloc(1024*sizeof(char));;

统计一个字符串中的单词数相关推荐

  1. JS统计一个字符串中数字字符的个数。

    ** JS统计一个字符串中数字字符的个数. ** 思路整理: 统计一个字符串中的数字字符个数,首先应该先遍历字符串中每一个单字符,然后对每个字符进行判断是否为数字,最后设置一个变量统计数目 具体实现: ...

  2. 统计一个字符串中单词的个数

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p113 习题4 7.统计一个字符串中单词的个数.字符串中两个空格之间的非空格字符串可看做单词. #in ...

  3. 实现统计一个字符串中的每个单词出现的次数--基于Go语言

    实现统计一个字符串中的每个单词出现的次数–基于Go语言 package mainimport ("fmt""strings" )func main() {//统 ...

  4. java基础—统计一个字符串中各个字符出现的次数

    统计一个字符串中各个字符出现的次数 import java.util.Iterator; import java.util.Set; import java.util.TreeMap;public c ...

  5. Python统计一个字符串中所有字符在另一个字符串出现的总次数

    代码功能:统计一个字符串中所有字符在另一个字符串中出现的总次数. 技术要点:函数式编程. 可能的应用:垃圾邮件分类.在大部分垃圾邮件中,为了防止被分类为垃圾邮件,会在一些关键字中间插入类似于[.].* ...

  6. C语言编程>第二十六周 ⑥ 请补充fun函数,该函数的功能是:按 “0”到 “9”统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。

    例题:请补充fun函数,该函数的功能是:按 "0"到 "9"统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中.注意:不能使用字符串库函数. ...

  7. 刷爆力扣之字符串中的单词数

    刷爆力扣之字符串中的单词数 HELLO,各位看官大大好,我是阿呆

  8. 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数

    统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数.(不考虑其他字符) 1.需求: 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数.(不考虑其他字符) 举例: " ...

  9. 统计一个字符串中每个字符出现的次数

    统计字符串中每个字符出现的次数 分析: 代码展示: 分析: 1.定义一个需要被统计字符的字符串.2.将字符串转换为字符数组.3.定义一个双列集合,存储字符串中的字符以及字符在此字符串中出现的次数.4. ...

最新文章

  1. mysql数据库 中文乱码_在CMD中操作mysql数据库出现中文乱码解决方案
  2. Asp.Net Web API 2第七课——Web API异常处理
  3. ActiveReports报表控件教程之单元格合并
  4. 第七季4:网络telnet调试、海思proc文件系统调试接口
  5. 上岸 | 震惊!211高校硕士毕业后,我在非洲当酋长!
  6. 通过url路径下载服务器文件
  7. 三星s20计算机怎么添加到桌面,三星s20+怎么分屏?三星s20系列多窗口分屏设置操作步骤...
  8. [HDU 2096] 小明A+B
  9. cachecloud 安装
  10. 在硅谷初创公司怎么找投资人
  11. 荣耀手机两个android文件夹,华为手机文件管理中,这几个文件夹可以任意删除,其他的千万不要乱删!...
  12. OEE Worksheet
  13. 计算机怎么开启远程桌面,电脑如何设置远程连接,教您如何远程
  14. dice系数 交叉熵_ACL2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
  15. 串行通信 - Modbus协议
  16. Python中安装GDAL
  17. 微信小程序解包wxappUnpacker-master 样式解不出来 SyntaxError: Unexpected end of input 的解决方式
  18. scanpy 单细胞分析包图文详解 01 | 深入理解 AnnData 数据结构
  19. [ Python ] 数据挖掘:股票价格
  20. 铁路行李随车托运办理

热门文章

  1. Caffe学习系列(3):视觉层(Vision Layers)及参数
  2. Code Review最佳实践
  3. RPC框架几行代码就够了
  4. 最常用的Eclipse快捷键
  5. Python入门笔记(17):错误、异常
  6. 整合 Google 开源 C++ 代码
  7. 鸟哥的Linux私房菜(基础篇)- 第七章、Linux 文件与目录管理
  8. MaxCompute 图计算开发指南
  9. cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建
  10. JSP标签和JSTL标签注意点