文章
8
粉丝
216
获赞
20
访问
67.0k
#include<bits/stdc++.h>
using namespace std;
string in[1000];
//因不区分大小写,故全部转换为小写
void lowerCase(string& str){
for(int i=0; i<str.length(); i++){
if('A'<=str[i] && str[i]<='Z')
str[i] = str[i] - 'A' + 'a';
}
}
//是否与字符串匹配
//寻找被匹配字符串是否匹配匹配字符串
bool matched(string str, string pattern){
int len1 = str.length();
int len2 = pattern.length();
lowerCase(str);//转小写
lowerCase(pattern);//转小写
int i=0, j=0;
//逐个扫描
while(i<len1 && j<len2){
//扫描字符串以'['开头,查找[]内有无被匹配pattern的第i个字符
//若有则将j置于']'后一个字符,i向后移一位
//若无则直接返回false
if(pattern[j] == '['){
int flag = 0;
//是否有和[]内任意一个字符匹配的
for(j=j+1; pattern[j]!=']'; j++)
if(str[i] == pattern[j])
flag = 1;
if(flag==0)
return false;
//将j移至']'之后
for(j; pattern[j]!=']'; j++);//此时pattern[j]==']',跳出循环
j++;
//将i后移一位
i++;
}else{//若字符串不以'['开头
if(str[i] == pattern[j]){
//字符正常后移
i++;
j++;
}else
retur...
登录后发布评论
暂无评论,来抢沙发