L1-070 吃火锅(C语言)

题目描述:

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。
本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1

输入格式:

输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。

输出格式:

  • 首先在一行中输出朋友信息的总条数。
  • 然后对朋友的每一行信息,检查其中是否包含 chi1 huo3 guo1,并且统计这样厉害的信息有多少条。
  • 在第二行中首先输出第一次出现 chi1 huo3 guo1 的信息是第几条(从 1 开始计数)
  • 然后输出这类信息的总条数,其间以一个空格分隔。题目保证输出的所有数字不超过100。
  • 如果朋友从头到尾都没提 chi1 huo3 guo1 这个关键词,则在第二行输出一个表情 -_-#

输入样例 1:

Hello!
are you there?
wantta chi1 huo3 guo1?
that’s so li hai le
our story begins from chi1 huo3 guo1 le
.

输出样例 1:

5
3 2

输入样例 2:

Hello!
are you there?
wantta qi huo3 guo1 chi1huo3guo1?
that’s so li hai le
our story begins from ci1 huo4 guo2 le
.

输出样例 2:

5
-_-#

解题思路

循环接收输入的每一条信息,直到遇见单独的 . ,输入结束。每接收一条信息,判断该字符串中是否存在 chi1 huo3 guo1 这个字串,存在则修改相应的值,不存在则接收下一条信息。

易错分析

  1. 每一条信息接收一次,因为可能存在空格,因此不能使用scanf()函数接收,应使用gets()函数
  2. 每一条信息只判断是否存在字串,不需要判断存在几个字串 (测试点 2)
  3. 单独的 . 是结束标志,但可能存在 . 开头的信息,此时没有结束,仍需进行判断,并继续接收下一条信息 (测试点 3)

解题方法

本题重点就在字符串中查找子串的方法

方法一:

使用strstr()函数
char *p = strstr(t1,t2),若t2t1的字串,返回值不为空,反之,返回值为空

用法举例:

char t1[] = "abcdefgh";
char t2[] = "def";
char *p = strstr(t1,t2);
//结果
p = "defgh"
---------------------------------------------------
char t1[] = "abcdefgh";
char t2[] = "xyz";
//结果
p = NULL

方法2:

使用strncmp()函数
strncmp(t1,t2,n),比较t1t2的n个字符,若返回值为0,则两字符串的n个字符相同
【】注意,t1t2代指字符串开始的位置,即
strncmp(t1,t2,n)指的是t1t2两个字符串从头开始比较n个字符
strncmp(&t1[3],&t2[5],4)指的是t1[3]开始的4个字符与t2[5]开始的4个字符进行比较

题目代码

方法1和方法2取其一即可

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(void)
{char temp[81] = { 0 };char t[] = "chi1 huo3 guo1";int tiaoshu = 0;  //朋友发来的信息条数int first = 0;  //第一条出现的位置,为0则没有要的信息int cishu = 0;  //吃火锅出现的总次数while (1){gets(temp);if ('.' == temp[0] && strlen(temp) == 1)  //跳出循环的条件break;tiaoshu++;//方法1char* p = strstr(temp, t);if (p != NULL){if (0 == first)first = tiaoshu;cishu++;}//方法2//if (strlen(temp) >= 14)//{//  for (int i = 0; i <= strlen(temp) - 14; i++)//   {//     if (0 == strncmp(&temp[i], t, 14))//      {//         if (0 == first)//             first = tiaoshu;//         cishu++;//            break;   //防止出现多次吃火锅的信息//       }// }//}}//输出printf("%d\n", tiaoshu);if (0 == first)printf("-_-#");elseprintf("%d %d", first, cishu);return 0;
}

L1-070 吃火锅(C语言)相关推荐

  1. PTA 7-18 吃火锅c语言

    以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用.但是如果你说"吃火锅",那就厉害了,我们的故事就开始了. 本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没 ...

  2. C语言:L1-070 吃火锅 (15 分)

    文章目录 一.题目 二.方法1 1.思路 2.代码 一.题目 以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用.但是如果你说"吃火锅",那就厉害了,我们的故事就开始了 ...

  3. pta——点赞,打印杨辉三角,吃火锅(c语言)

    程序设计实训8月16日小组编程 今日碎碎念:今天稀里糊涂地在规定时间内倒是都做出来了,但是还有些问题没有想明白再回顾一下.(大佬都在自己的博客上写学习笔记,我只能用用CSDN了唔) 7-1 点赞 微博 ...

  4. pta 吃火锅(C语言实现)

    题目描述 微信朋友圈:这种天气你有什么破事打电话给我基本没用.但是如果你说"吃火锅",那就厉害了,我们的故事就开始了. 本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 ...

  5. 用腾讯优图AI视觉模组在树莓派上玩吃火锅体感游戏

    今年上半年,由于疫情原因,Switch 大火,Switch 平台上有许多款体感游戏,比如:健 身环大冒险.马力欧赛车.舞力全开.这些游戏凭着"硬核健身"的标签吸引了大量玩家, 通过 ...

  6. L1-6 吃火锅 (15分)

    L1-6 吃火锅 (15分) 以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用.但是如果你说"吃火锅",那就厉害了,我们的故事就开始了. 本题要求你实现一个程序,自动 ...

  7. 吃火锅有四忌[转载]

    一忌吃的时间太长 有的人,一吃就是数小时之久,甚至通宵达旦.这样会使胃液.胆汁.胰液等消化液不停地分泌,腺体得不到正常休息,导致胃肠功能紊乱,发生腹痛.腹泻,严重的可患慢性胃肠炎.胰腺炎等. 二忌吃得 ...

  8. 上海女白领吃火锅碰瓷,支付宝口碑居然真的要赔?

    昨天中午,新闻晨报在微博上发出一条新闻:上海一位汪小姐吃火锅的时候,因用支付宝口碑扫码中了一个999元大红包,结果因为太激动手机不小心掉进油汤里,捞出来以后开不了机了.关键是这位小姐觉得这是口碑和商家 ...

  9. 7-110 吃火锅 (15 分)

    7-110 吃火锅 (15 分) 以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用.但是如果你说"吃火锅",那就厉害了,我们的故事就开始了. 本题要求你实现一个程序, ...

最新文章

  1. mysql 分表后如何扩展_mysql扩展至分库分表
  2. 【完结】给新手的12大深度学习开源框架快速入门项目
  3. 三组关键词,拆解2021年赤子城的中期业绩报告
  4. vue项目,webpack中配置src路径别名及使用
  5. mysql 聚合函数求积_Oracle聚合求和和聚合求积(顺便解决BOM展开的问题)
  6. 希尔排序是一种稳定的排序算法_十大经典排序算法——希尔排序
  7. 使用Redis和Apache Kafka处理时间序列数据
  8. C#:设置CefSharp的一些参数,比如忽略安全证书
  9. Endurance for Mac(电池续航管理提升工具)
  10. 机器学习发展历史回顾
  11. 企业级多用户发卡平台源码PHP
  12. 为什么canvas画的是正方形是长方形
  13. wps居中对齐不在中间_wps怎么把字水平居中对齐
  14. springboot-全局异常处理器
  15. 大屏自适应文章收藏分享
  16. Python数据分析实例,利用Pandas建立流域三层蒸发和蓄满产流模型
  17. python实现kd树以及最近邻查找算法
  18. 将页面中的指定 div 下载为图片
  19. 字体文件检查工具Webfont Generator
  20. 一款FPGA时序电路数据画图软件

热门文章

  1. 自动阅读专业版---原薅羊毛专业版
  2. 治疗脑血栓的特效药是什么
  3. python安装venv_Python:virtualenv 和 venv
  4. 一个CEO的人生感言
  5. python获取文档的真实创建时间(word、excel、ppt、pdf、图片)
  6. Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局
  7. java发起HTTP 请求的多种方式
  8. TYVJ4239 [NOIP2015提高组DayT3]斗地主
  9. HRD 必须知晓的 OKR 与持续绩效管理
  10. 软件测试笔试题含答案