1022. Digital Library
字符串处理能力有待提高
// 1022. Digital Library.cpp: 主项目文件。#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int N=10003;
typedef struct Book{char info[6][83];//int id,time;//char title[83],author[83],publisher[83];char keyWord[8][13];int keys;
}Book;
Book books[N];
int n;void splitWord(int cur,char *str){int cnt=0,low=-1,high=-1,i;bool tag=false;for(i=0;str[i];i++){if(!tag){if(str[i]!=' ')tag=true,low=i;}else{if(str[i]==' '){high=i,tag=false;strncpy(books[cur].keyWord[cnt++],str+low,high-low);books[cur].keys++;}}}high=i;strncpy(books[cur].keyWord[cnt++],str+low,high-low);books[cur].keys++;
}bool cmp(Book m1,Book m2){return strcmp(m1.info[0],m2.info[0])<0;
}void queryOperate(int ver,char *queryCmd){bool tag=false;if(ver!=3){for(int i=0;i<n;i++){if(strcmp(queryCmd,books[i].info[ver])==0)tag=true,printf("%s\n",books[i].info[0]);}}else{for(int i=0;i<n;i++){bool flag=false;for(int j=0;j<books[i].keys;j++){if(strcmp(queryCmd,books[i].keyWord[j])==0)flag=true;}if(flag)tag=true,printf("%s\n",books[i].info[0]);}}if(!tag)printf("Not Found\n");
}int main()
{//freopen("F:\\test.txt","r",stdin);//freopen("F:\\output.txt","w",stdout);scanf("%d",&n);getchar();for(int i=0;i<n;i++){char str[153];for(int j=0;j<3;j++)gets(books[i].info[j]);books[i].keys=0;gets(str);splitWord(i,str);gets(books[i].info[4]);gets(books[i].info[5]);}sort(books,books+n,cmp);int queryNum;scanf("%d",&queryNum);while(queryNum--){int ver;char queryCmd[103];scanf("%d: ",&ver);gets(queryCmd);printf("%d: ",ver);puts(queryCmd);queryOperate(ver,queryCmd);}return 0;
}
转载于:https://www.cnblogs.com/cjweffort/archive/2013/03/11/3374861.html
1022. Digital Library相关推荐
- PAT甲级1022 Digital Library (30分):[C++题解]结构体、排序、查询
文章目录 题目分析 题目链接 题目分析 分析: 一本书信息由6个,想到用结构体来存. 至于每一个信息可以用string来存,而关键字在想使用vector<string> keywords还 ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...
- pat 甲级 1022 Digital Library 报错,格式错误等
当你被1022题搞得恼羞成怒,反复检查代码准确无误,怀疑是输出格式问题时(你可能已经测试了两种不同格式) 那么我相信看到这篇文章的你编写的程序应该是准确的,只是PAT题目编写的随意程度再次令人乍舌. ...
- 1022 Digital Library
1. 关键数据结构 map<string,vector<string> > mp[6] 其中mp[1]代表从书名映射到id(id可能无,可能不止一个,所以要用vector),m ...
- 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】
https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 解析: 将每一部分都用哈希表映射.映射的结果 ...
- 1022. Digital Library (30)
考察倒排索引 #include<iostream> #include<string> #include<vector> #include<algorithm& ...
- 【PAT甲级 - C++题解】1022 Digital Library
✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
- PTA-1022——Digital Library
题目: A Digital Library contains millions of books, stored according to their titles, authors, key wor ...
- ACM Digital Library访问及完整联动Zotero
The ACM Digital Library(Association for Computing Machinery)创立于1947年,是全球历史最悠久和最大的计算机教育.科研机构.数据库收录了美国 ...
最新文章
- 2021年春季学期-信号与系统-第十五次作业参考答案-第三小题参考答案
- Redis AOF 全持久化
- tcc(tiny cc)的作者是谁,对tcc的特点做描述?
- python3自动化软件发布系统_基于python3做C/S端自动化测试可能用到的工具(不断更新中。。。。)...
- java大作业私人管家系统_重庆管家婆软件丨管家婆工贸PRO的E-MES管理详解
- 配置zend studio的代码格式化文件及远程单步调试
- Linux paste命令
- 计算机设计大赛作品——冬奥可视化
- 计算机配置更新怎么关闭,如何关闭戴尔电脑自动更新系统配置
- 新版白话空间统计(3):空间分布模式
- FlashVml2.0(WEB上的PhotoShop+Flash、VML最强开发工具)[推荐]
- 华为nova5iotg功能使用_华为Nova2怎么使用OTG功能教程
- 2,JESD204为什么值得关注?
- 服务器一直显示初始化,服务器一直初始化内存
- word表格导出为图像
- 华为交换机常见的ACL操作
- 生物信息中的Markov链
- vue中禁止ios橡皮筋效果(亲测有效)
- 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法
- CSDN如何置顶博客