比较坑,注意scanf或者cin 与 getline 之间必须 加一个 getchar();
#include<iostream> #include<cctype> using namespace std; int main() { char c; scanf("%c",&c); getchar(); string str; if(c == 'C') { getline(cin,str); for(int i = 0; i < str.size(); ++i) { int cnt = 0; while(i+1 < str.size() && str[i] == str[i+1]) { i++; cnt++; } if(cnt != 0) printf("%d%c",cnt+1,str[i]); else printf("%c",str[i]); } } else { getline(cin,str); for(int i = 0; i < str.size(); ++i) { int cnt = 0; while(i < str.size() && isdigit(str[i])) { cnt = cnt*10 + str[i++]-'0'; } if(cnt > 0) { for(int j = 0; j < cnt; ++j) printf("%c",str[i]); } else printf("%c",str[i]); } } return 0; }