2012年12月24日 星期一

ITSA10

 
 #include<stdio.h>
int main(){
char c;
while((c=getchar())!=EOF){

    if(c=='<') {
        while(c!='>') c=getchar();
    }
    else if(c==' '||c=='\t'||c=='\n')
        ;
    else{
        printf("[");
        while(c!='<'){
        putchar(c);
        c=getchar();
        }
        printf("]\n");
        while(c!='>') c=getchar();
    }
}
return 0;
}
老師解法(有去尾部空白)
 
#include<stdio.h>
#include <stdlib.h>
main()
{
 char line[1024];
 int idx;
 int state;
 int c;
 state=0;
 while((c=getchar())!=EOF){
  if(state==0){
   if(c=='<'){
    state=1;
   }
   else{
    if(c!=' '&&c!='\n'&&c!='\t'){
     state=2;
     idx=0;
     line[idx++]=c;
    }
   }
  }
  else if(state==1){
   if(c=='>'){
    state=0;
   }
  }
  else if(state==2){
   if(c=='<'){
    for(idx--;line[idx]==' '||line[idx]=='\n'||line[idx]=='\t';idx--);
    line[idx+1]='\0';
    printf("[%s]\n", line);
    state=1;
   }else line[idx++]=c;
  }
 }
}



沒有留言:

張貼留言