用flag来区分当前是否在数字串连续的状态
#include<string> #include<iostream> using namespace std; int main(){ string str; while(getline(cin, str)){ bool flag=0; string res; for(int i=0;i<str.size();i++){ if(flag==0){ if(str[i]>'9'||str[i]<'0') { res+=str[i]; } else if(str[i]<='9'&&str[i]>='0') { res+='\**'; res+= str[i]; flag=1; } } else if(flag==1){ if(str[i]>'9'||str[i]<'0'){ res+='****'; res+=str[i]; flag=0; }else if(str[i]<='9'&&str[i]>='0'){ res+= str[i]; } } } if(flag==1) res+='*'; cout<<res<<endl; } return 0; }