有一个需要注意的点: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; }