字符串处理能力有待提高

// 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相关推荐

  1. PAT甲级1022 Digital Library (30分):[C++题解]结构体、排序、查询

    文章目录 题目分析 题目链接 题目分析 分析: 一本书信息由6个,想到用结构体来存. 至于每一个信息可以用string来存,而关键字在想使用vector<string> keywords还 ...

  2. 1022. Digital Library (30) -map -字符串处理

    题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...

  3. pat 甲级 1022 Digital Library 报错,格式错误等

    当你被1022题搞得恼羞成怒,反复检查代码准确无误,怀疑是输出格式问题时(你可能已经测试了两种不同格式) 那么我相信看到这篇文章的你编写的程序应该是准确的,只是PAT题目编写的随意程度再次令人乍舌. ...

  4. 1022 Digital Library

    1. 关键数据结构 map<string,vector<string> > mp[6] 其中mp[1]代表从书名映射到id(id可能无,可能不止一个,所以要用vector),m ...

  5. 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 解析: 将每一部分都用哈希表映射.映射的结果 ...

  6. 1022. Digital Library (30)

    考察倒排索引 #include<iostream> #include<string> #include<vector> #include<algorithm& ...

  7. 【PAT甲级 - C++题解】1022 Digital Library

    ✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343

  8. PTA-1022——Digital Library

    题目: A Digital Library contains millions of books, stored according to their titles, authors, key wor ...

  9. ACM Digital Library访问及完整联动Zotero

    The ACM Digital Library(Association for Computing Machinery)创立于1947年,是全球历史最悠久和最大的计算机教育.科研机构.数据库收录了美国 ...

最新文章

  1. 2021年春季学期-信号与系统-第十五次作业参考答案-第三小题参考答案
  2. Redis AOF 全持久化
  3. tcc(tiny cc)的作者是谁,对tcc的特点做描述?
  4. python3自动化软件发布系统_基于python3做C/S端自动化测试可能用到的工具(不断更新中。。。。)...
  5. java大作业私人管家系统_重庆管家婆软件丨管家婆工贸PRO的E-MES管理详解
  6. 配置zend studio的代码格式化文件及远程单步调试
  7. Linux paste命令
  8. 计算机设计大赛作品——冬奥可视化
  9. 计算机配置更新怎么关闭,如何关闭戴尔电脑自动更新系统配置
  10. 新版白话空间统计(3):空间分布模式
  11. FlashVml2.0(WEB上的PhotoShop+Flash、VML最强开发工具)[推荐]
  12. 华为nova5iotg功能使用_华为Nova2怎么使用OTG功能教程
  13. 2,JESD204为什么值得关注?
  14. 服务器一直显示初始化,服务器一直初始化内存
  15. word表格导出为图像
  16. 华为交换机常见的ACL操作
  17. 生物信息中的Markov链
  18. vue中禁止ios橡皮筋效果(亲测有效)
  19. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法
  20. CSDN如何置顶博客

热门文章

  1. js外部样式和style属性的添加移除
  2. php面试专题---MySQL常用SQL语句优化
  3. 资源管理与调度系统-YARN的资源调度器
  4. 135.002 智能合约设计-——多员工薪酬系统
  5. Linux命令篇之history命令和alias命令
  6. 你自认为了解微信小程序?醒醒吧!
  7. junit、spring浅析、ssm框架、json格式
  8. Docker结合Jenkins的持续构建实践
  9. USACO Dual Palindrome
  10. 【水】HDU 2099——整除的尾数