Run ID:138740

提交时间:2025-11-29 16:50:17

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int main() { int m; char s[101]; char a[101]; cin>>m; getchar(); while(m--) { scanf("%s",s); int k=0; int sum=0; for(int i=0;i<strlen(s);i++) //分为3中大情况, { if(s[i]>='0'&&s[i]<='9') //数字的话,里面再细分三种情况 { sum=sum*10+s[i]-'0'; // printf("%d\n",sum); if(s[i+1]>='0'&&s[i+1]<='9') { sum=sum*10+s[i+1]-'0'; a[k++]=sum-1+'A'; //printf("%d***\n",sum-1); i++; sum=0; } else if(s[i+1]=='-'||s[i+1]=='\0') //此陷阱,末尾需要处理 { a[k++]=sum-1+'A'; //printf("%c***\n",sum-1+'A'); sum=0; } else if(s[i+1]=='#') { a[k++]=sum-1+'A'; sum=0; } } else if(s[i]=='-') { continue; } else if(s[i]=='#') { a[k++]=' '; } } //printf("K:%d %c\n",k,a[0]); for(int i=0;i<k;i++) printf("%c",a[i]); printf("\n"); } }