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

洛谷 P1308 [NOIP2011 普及组] 统计单词数 C语言

题目:

https://www.luogu.com.cn/problem/P1308

 复制Markdown  展开

题目描述

一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例 1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2)。

输入格式

共 2 行。

第 1 行为一个字符串,其中只含字母,表示给定单词;

第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

输出格式

一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数 −1。

注意:空格占一个字母位

思路在注释里面

代码如下:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main(void)
{
	string a,b;
	getline(cin,a);//getline读取字符串 
	getline(cin,b);
	
	for(int i = 0 ; i < a.size() ; i++)
	{
		a[i] = toupper(a[i]);//将字符转换成大写,原来是大写就不变,不是字符也会返回原字符(空格) 
	}
	for(int i = 0 ; i < b.size() ; i++)
	{
		b[i] = toupper(b[i]);
	 } 
	 a = " " + a + " ";//将找到的a变为单词形式 “ to ”,例如toward,不是真的to 
	 b = " " + b + " "; 
	 if(b.find(a) == string :: npos)//如果没有找到匹配项,find 方法会返回一个特殊的常量值 std::  string::npos
	 {
		cout << -1 << endl;
	 }
	 else
	 {
	 	int sum = 0;
	 	int st=b.find(a,0);//st为找到的第一个a,也就是to,t的下标0
	 	
	 	int tmp = st;
	 	while(tmp != -1)//非-1的时候继续循环,因为返回-1就是没找到 
	 	{
	 		sum++;
	 		tmp = b.find(a,tmp+1);//tmp+1,是从to的o下一个下标开始寻找 
		 }
		 cout << sum << " " << st; 
	 }
	return 0;
 } 


http://www.kler.cn/a/419907.html

相关文章:

  • 第1章:CSS简介 --[CSS零基础入门]
  • 2024年Java面试八股文大全(附答案版)
  • AWS账号提额
  • 云原生周刊:Kubernetes 和 Docker 的对比
  • SuperMap GIS基础产品FAQ集锦(20241202)
  • YOLOv11 NCNN安卓部署
  • 对于大规模的淘宝API接口数据,有什么高效的处理方法?
  • 2. langgraph中的Tool Calling (How to handle tool calling errors)
  • AI在SEO中的应用与关键词优化探讨
  • 011变长子网掩码
  • React 前端框架1
  • <<WTF-Solidity>>学习笔记(part 25-28)
  • 物联网——WatchDog(监听器)
  • 关于正点原子STM32F404探索者V3ZGT6 RS232串口的使用
  • navicat连接mysql 8.0以上版本2059错误
  • Gazebo插件相机传感器(可订阅/camera/image_raw话题)
  • OpenCV_Code_LOG
  • IT监控:Perseus采集平台的介绍
  • Java 并发基础之 Java NIO 详解
  • openssl哈希算法
  • 【Spring Security框架解析】
  • 【C++】set的使用
  • [高阶数据结构六]最短路径算法
  • 2024年11月28日Github流行趋势
  • 40分钟学 Go 语言高并发:GC原理与优化
  • 驾驭 Spring Data JPA:高效数据库操作的实践指南