首先我们将每种 noip
的大小写情况打出来,注意一定要用 char
因为 string
的每位类型为 char
这就是所有可能:char d[20][10]={{'n','o','i','p'},{'N','o','i','p'},{'n','O','i','p'},{'n','o','I','p'},{'n','o','i','P'},{'N','O','i','p'},{'N','o','I','p'},{'N','o','i','P'},{'n','O','I','p'},{'n','O','i','P'},{'n','o','I','P'},{'N','O','I','p'},{'N','O','i','P'},{'N','o','I','P'},{'n','O','I','P'},{'N','O','I','P'}};
接下来模拟一下就行了从字符串的第一位开始,每次读取 4 位,判断这 4 位是否与 noip
的 16 种形式有相同,如果有就输出 CSP
,并且将 i 加 4 。
如果不是则就输出 a_i 并且将 i 加一。
伪代码:
while(i<a.size()){
bool flag=0;
for(int j=0;j<16;j++){//查看是否有相同
if(/*判断条件 */){
flag=1;
break;
}
}
if(flag){
cout<<"CSP";
i+=4;
}
else{
cout<<a[i];
i++;
}
}