トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2003aa1.cの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
 // Probrem A
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
 
 #define MAXLINE 100
 
 void jjj(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	char tmp;
 	
 	tmp=s[len-1];
 	for(i=len-2; i>=0; i--){
 		s[i+1]=s[i];
 	}
 	s[0]=tmp;
 }
 
 void ccc(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	char tmp;
 	
 	tmp=s[0];
 	for(i=0; i<=len-2; i++){
 		s[i]=s[i+1];
 	}
 	s[len-1]=tmp;
 }
 
 void eee(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	char tmp;
 	
 	for(i=0; i<len/2; i++){
 		tmp=s[i];
 		s[i]=s[len/2+i+(len%2)];
 		s[len/2+i+(len%2)]=tmp;
 	}
 }
 
 void aaa(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	char tmp;
 	
 	for(i=0; i<len/2; i++){
 		tmp=s[i];
 		s[i]=s[len-1-i];
 		s[len-1-i]=tmp;
 	}
 }
 
 void ppp(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	
 	for(i=0; i<len; i++){
 		if(isdigit(s[i])){
 			s[i]=(10 + (s[i]-'0') -1 )%10 + '0';
 		}
 	}
 }
 
 void mmm(char s[MAXLINE])
 {
 	int i, len=strlen(s);
 	
 	for(i=0; i<len; i++){
 		if(isdigit(s[i])){
 			s[i]=(10 + (s[i]-'0') +1 )%10 + '0';
 		}
 	}
 }
 
 int main(int argc, char *argv[])
 {
 	FILE *fp;
 	char order[MAXLINE], message[MAXLINE];
 	int i,j,k,n,x,y,z;
 	
 	if(argc != 2){
 		fprintf(stderr, "Usage: program input-file\n");
 		exit(-1);
 	}
 	
 	if((fp=fopen(argv[1],"r")) == NULL){
 		fprintf(stderr, "can't open %s\n", argv[1]);
 		exit(-1);
 	}
 	
 	// 個数読み込み
 	fscanf(fp, "%d", &n);
 	
 	for(i=0; i<n; i++){
 		fscanf(fp, "%s", order);
 		fscanf(fp, "%s", message);
 		//printf("%s\n", order);
 		//printf("%s\n", message);
 		for(j=strlen(order)-1; j>=0; j--){
 			switch(order[j]){
 				case 'J': jjj(message); break;
 				case 'C': ccc(message); break;
 				case 'E': eee(message); break;
 				case 'A': aaa(message); break;
 				case 'P': ppp(message); break;
 				case 'M': mmm(message); break;
 				default: puts("error?"); break;
 			}
 		}
 		printf("%s\n", message);
 		//printf("\n");
 	}
 	
 	fclose(fp);
 	
 	return(0);
 }