有一个需要注意的点:t += ('*' + '5');是错的 因为'*'和'5'是两个字符 试图将两个字符相加得到的是整数,而不是想要的'*5',所以要分别t += '*'; t += '5';
#include <cctype>
#include <iostream>
using namespace std;
int main() {
string s, t;
cin >> s;
t = "";
if(isdigit(s[0])) t += '*';
t += s[0];
for(int i = 1; i < s.size(); ++i) {
if((isdigit(s[i])) && !isdigit(s[i-1]) || (isdigit(s[i-1]) && !isdigit(s[i]))) {
t += '*';
}
t += s[i];
}
if(isdigit(s[s.size()-1])) t += '*';
cout << t << endl;
return 0;
}



京公网安备 11010502036488号