当前位置: 首页 > news >正文

【时时三省】(C语言基础)字符数组应用举例

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

例题

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

解题思路:

问题的关键是怎样确定“出现一个新单词了”。可以采取这样的方法:从第1个字符开始逐个字符进行检查,判断此字符是否是新单词的开头,如果是,就使变量num的值加1(用变量num统计单词数),最后得到的num的值就是单词总数。

判断是否出现新单词,可以由是否有空格出现来决定(连续的若十个空格作为出现一次空格;一行开头的空格不统计在内)。如果测出某一个字符为非空格,而它的前面的字符是空格,则表示“新的单词开始了”,此时使num(单词数)累加1。如果当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,num不应再累加1。用变量word作为判别当前是否开始了一个新单词的标志,若word = 0表示未出现新单词,如出了新单词,就把word置成1。

前面一个字符是否为空格可以从word的值看出来,若word等于0,则表示前一个字符是空格;如果word等于1,意味着前一个字符为非空格。

以输入" I am a boy .”为例,说明在对每个字符作检查时的有关参数状态,见下图所示。

编写程序:

运行结果:

程序分析:

循环的条件表达式为“( c = string [ i ] ) ! = '\0 '”,先执行括号内的赋值表达式“c = string [i]”,将字符数组string [ i ](是一个字符)赋给字符变量c。此时赋值表达式的值就是该字符。然后再判定它是否为结束符(' \0 ' )。如果该条件表达式为真(字符不是' \0 ' ),则继续执行循环体,检查此字符是否空格字符,如果是,表示新单词没有开始,word置0。如果不是空格字符而且word原值为0,表示新单词开始了,word置1,num加1。请分析当下一个字符仍是非空格字符的情况。

http://www.dtcms.com/a/192702.html

相关文章:

  • 深度学习框架---TensorFlow概览
  • C#中Action的用法
  • mac docker弹窗提示Docker 启动没有响应
  • 【docker】--数据卷挂载
  • Redis学习打卡-Day2-缓存更新策略、主动更新策略、缓存穿透、缓存雪崩、缓存击穿
  • 数据科学和机器学习的“看家兵器”——pandas模块 之五
  • 用户安全架构设计
  • 【unity游戏开发——编辑器扩展】使用Selection类获取到选择的对象,并对选中对象进行一些处理
  • 【微信小程序】webp资源上传失败
  • 『已解决』Python virtualenv_ error_ unrecognized arguments_--wheel-bundle
  • Codeforces Round 1023 (Div.2)
  • JAVA学习-练习试用Java实现“语音识别的基础 :如使用MFCC特征提取和简单的分类器”
  • 【AI论文】对抗性后期训练快速文本到音频生成
  • stm32使用freertos时延时时间间隔不对,可能是晶振频率没设置
  • 【Redis】压缩列表
  • Oracle统计信息收集时的锁持有阶段
  • UDP 多点通信
  • 高频交直流电流测量技术:射频PA与MEMS测试的简单解决方案
  • Buildroot 移植MiniGUI
  • Python高级进阶:Vim与Vi使用指南
  • 多模态大语言模型arxiv论文略读(七十七)
  • 一站式本地化方案,解决欧洲反向海淘多重难题
  • 【Linux】网络基础与socket编程基础
  • 【中级软件设计师】网络攻击(附软考真题)
  • [Harmony]大文件持久化
  • Spring Boot多数据源配置的陷阱与终极解决方案
  • 2025 年十大网络安全预测
  • 【问题记录】08 MAC电脑,安装HP打印机驱动,提示:此更新需要macOS版本15.0或更低版本
  • 汽车零部件冲压车间MES一体机解决方案
  • CAPL编程系列_04