#include<stdio.h>#include <string.h>int main(){ int locate(char a[],char); int n,i,j; scanf("%d",&n); getchar();/*, 你输入数字123, 按回车,输入缓冲区的内容是"123/n". 这时数字被scanf读入, 但是输入缓冲区里还有一个'/n'. getchar()把'/n'取出,以免影响gets. 而gets在遇到'/n'时会停止读数据,所以如果不用getchar取出'/n', gets遇到'/n'立即停止,只能读到一个空串, '/0'. */ char str[10][4],str2[]="YES",str3[]="NO"; for(i=0;i<n;++i) { strcpy(str[i],str2); } for(i=0;i<n;++i) { char a[100]; PRintf("input a string:"); gets(a); puts(a); int kp,kt,kp_t,kend,k=0; kp=locate(a,'P'); kt=locate(a,'T'); kp_t=kt-kp-1; kend=locate(a,'/0'); printf("%d %d %d %d/n",kp,kt,kp_t,kend); while(a[k]!='P') if(a[k++]!='A') { strcpy(str[i],str3);break; } k++; while(a[k]!='T') if(a[k++]!='A') { strcpy(str[i],str3);break; } k++; while(a[k]!='/0') if(a[k++]!='A') { strcpy(str[i],str3);break; } if((kp_t*kp!=(kend-kt-1))||(kp_t<1)) { strcpy(str[i],str3); } } for(j=0;j<n;++j) { puts(str[j]); } return 0;}int locate(char a[],char b){ int i=0; while(a[i]!='/0') { if(a[i]==b)//用''对包含的代表字符常量,其值为字符a的ascii码,故此处不用'b'! break; ++i; } return i;}
新闻热点
疑难解答