字符串个数匹配问题-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

字符串个数匹配问题

简介: # 7-2 子字符串个数匹配 分别输入两个字符串A和B,A由多个小字符串组成(中间由非字母隔开),B是由字母组成的字符串。求出A中包含B的小字符串的个数(详细看样例),并且输出它。(不区分大小写) ### 输入格式: 先输入字符串A,由回车结束。然后输入字符串B。 ### 输出格式: 输出A中包含B字符串的个数、 ### 输入样例: 在这里给出一组输入。例如: ```in aaBbc4./ewfeAbc wefW%!%&aAbc++0 4Abccabc aBc ``` ### 输出样例: 在这里给出相应的输出。例如: ```out 3 ``` 解释: A可以看成:a

7-2 子字符串个数匹配

分别输入两个字符串A和B,A由多个小字符串组成(中间由非字母隔开),B是由字母组成的字符串。求出A中包含B的小字符串的个数(详细看样例),并且输出它。(不区分大小写)

输入格式:

先输入字符串A,由回车结束。然后输入字符串B。

输出格式:

输出A中包含B字符串的个数、

输入样例:

在这里给出一组输入。例如:

aaBbc4./ewfeAbc  wefW%!%&aAbc++0 4Abccabc

aBc

输出样例:

在这里给出相应的输出。例如:

3

解释:

A可以看成:aabbc ewfeabc wefw aabc abccabc小字符串组成的字符串。

#include <iostream>

#include <string>

#include <vector>

#include<sstream>

using namespace std;

string delNotChar(string str) {

   int len = str.size();

   string b;

   for (int i = 0; i <= len; i++) {

       if ((str[i] >= 'a' && str[i] <= 'z') || str[i] == ' ')

           b.push_back(str[i]);

       else

           b.push_back(' ');

   }

   return b;

}

int main() {

   int count = 0;//匹配次数

   string T;//原串

   string P;//模式串

   getline(cin, T);

   getline(cin, P);

   //换小写

   for (int i = 0; i <= T.size(); i++)

       T[i] = tolower(T[i]);

   for (int i = 0; i <= P.size(); i++)

       P[i] = tolower(P[i]);

   //去除非字母非空格字符

   T=delNotChar(T);

   vector<string> strArray;

   string word;

   stringstream input(T);

   while (input >> word)

       strArray.push_back(word);

   for (int i = 0; i < strArray.size(); i++) {

       if (strArray[i].find(P, 0) != string::npos)

           count++;

   }

   cout << count;

   system("pause");

   return 0;

}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: