zoukankan      html  css  js  c++  java
  • CSP 字符串匹配(201409-3)

    问题描述
      给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。
    输入格式
      输入的第一行包含一个字符串S,由大小写英文字母组成。
      第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
      第三行包含一个整数n,表示给出的文字的行数。
      接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
    输出格式
      输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。
    样例输入
    Hello
    1
    5
    HelloWorld
    HiHiHelloHiHi
    GrepIsAGreatTool
    HELLO
    HELLOisNOTHello
    样例输出
    HelloWorld
    HiHiHelloHiHi
    HELLOisNOTHello
    样例说明
      在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。
    评测用例规模与约定
      1<=n<=100,每个字符串的长度不超过100。

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 void stolower(string &s){
     5     for(int i=0;i<s.length();i++){
     6         if(s.at(i)>='A'&&s.at(i)<='Z'){
     7             s.replace(i,1,1,s.at(i)+32);
     8         }
     9     }
    10 }
    11 int main(){
    12     string s;
    13     int mark,n;
    14     cin>>s>>mark>>n;
    15     if(mark==0) stolower(s);
    16     for(int i=0;i<n;i++){
    17         string in;
    18         cin>>in;
    19         string tin=in;
    20         if(mark==0) stolower(tin);
    21         if(tin.find(s,0)!=string::npos) cout<<in<<endl;
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    Django中多表的增删改查操作及聚合查询、F、Q查询
    路由控制
    路由、视图、模板主要知识点回顾
    创建文件linux
    关于shell,环境变量放置在?
    snprintf和string操作函数
    C/C++的存储区域的划分
    001
    SAMBA服务器
    归并排序原理详解!
  • 原文地址:https://www.cnblogs.com/bitor/p/6568128.html
Copyright © 2011-2022 走看看