题目太长就不展示了....
思路:思路很简单,T组中的ACM对应S组中的字符。如果后面一个字符不是ACM中的其中一个,那么就输入当前的字符,然后空一格,if(T[i+1]!='A'&&T[i+1]!='C'&&T[i+1]!='M')
printf("%c "S[i]);
如果后面是ACM连起来的,就不用空格。与上面成对立面,所以else
printf("%c",S[i]);
这两种情况都是在该字符是ACM的情况下所发生的,所以:
if(T[i]=='A'||T[i]=='C'||T[i]=='M'){
if(T[i+1]!='A'&&T[i+1]!='C'&&T[i+1]!='M')
printf("%c "S[i]);
else
printf("%c",S[i]);
}
完整代码为:include<stdio.h>
#include<string.h>
int main()
{
char S[1001],T[1001];
int a=strlen(S);
scanf("%d",&a);
scanf("%s",S);
scanf("%s",T);
for(int i=0;i<a;i++)
{
if(T[i]=='A'||T[i]=='C'||T[i]=='M'){
if(T[i+1]!='A'&&T[i+1]!='C'&&T[i+1]!='M')
printf("%c "S[i]);
else
printf("%c",S[i]);
}
}
}