⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.c

📁 caesar cipher 分析 能够分析单个替代的caesar cipher
💻 C
字号:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int sum=0;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z=0;
void toCalculate(char s1[]);
int main() 
{ 
	
	FILE *fp1; 
	FILE *fp2;  
	char buf[1024]; 

	
		if( (fp1=fopen("d:\\abc.txt","r"))==NULL ) 
		{ 
			printf("open file failed  or no abc.txt! @ d:\n"); 
			 
			 system("pause");
			exit(0);
		} 
		

while(!feof(fp1))  
 { 
   memset(buf, 0, 1024);  
   fgets(buf, 1024, fp1); 
   printf(" %s\n",buf);
	toCalculate(buf);
	
 }
fclose(fp1); 

 printf("Total number of char is : %d\n",sum);
 
 float f1=sum+0.0;

   printf("\n\n           the frequency table\n");	
  printf("\n\n+++++++++++++++++++++++++++++++++++++++++++++\n");
  printf("a=%2.3f%% b=%2.3f%% c=%2.3f%% d=%2.3f%% e=%2.3f%%\n",a/f1*100, b/f1*100,c/f1*100,d/f1*100,e/f1*100);
  printf("f=%2.3f%% g=%2.3f%% h=%2.3f%% i=%2.3f%% j=%2.3f%%\n",f/f1*100, g/f1*100,h/f1*100,i/f1*100,j/f1*100);
  printf("k=%2.3f%% l=%2.3f%% m=%2.3f%% n=%2.3f%% o=%2.3f%%\n",k/f1*100, l/f1*100,m/f1*100,n/f1*100,o/f1*100);
  printf("p=%2.3f%% q=%2.3f%% r=%2.3f%% s=%2.3f%% t=%2.3f%%\n",p/f1*100, q/f1*100,r/f1*100,s/f1*100,t/f1*100);
  printf("u=%2.3f%% v=%2.3f%% w=%2.3f%% x=%2.3f%% y=%2.3f%%\n",u/f1*100, v/f1*100,w/f1*100,x/f1*100,y/f1*100);
   printf("z=%2.3f%%",z/f1*100);
  
   printf("\n+++++++++++++++++++++++++++++++++++++++++++++\n");
 system("pause");
 
return 0; 

}


 	void toCalculate (char s1[])
 	{
 		 
 
 		int itemp = 0;
 		char temp;
 		while (s1[itemp]!='\0')
    		{ 
    				
    			if (s1[itemp]>='A' && s1[itemp]<='Z')
    			  {
    				sum++;
    			  }
    			else if (s1[itemp]>='a'&&s1[itemp]<='z')
    			  {
    				sum++;
    			  }
    			 
    			  
             temp=s1[itemp];
     
        switch(temp) 
        {
        	case 'a':
        	case 'A':a++;break; 
			case 'b':
			case 'B':b++;break; 
			case 'c':
			case 'C':c++;break; 
			case 'd':
			case 'D':d++;break; 
			case 'e':
			case 'E':e++;break; 
		    case'f':
		    case'F': f++;break;
		     case'g':
		    case'G': g++;break;
		     case'h':
		    case'H': h++;break;
		     case'i':
		    case'I':i++; break;
		     case'j':
		    case'J':j++; break;
		     case'k':
		    case'K':k++; break;
		     case'l':
		    case'L':l++; break;
		     case'm':
		    case'M':m++; break;
		     case'n':
		    case'N':n++; break;
		     case'o':
		    case'O':o++; break;
		     case'p':
		    case'P':p++; break;
		     case'q':
		    case'Q':q++; break;
		     case'r':
		    case'R':r++; break;
		     case's':
		    case'S':s++; break;
		     case't':
		    case'T':t++; break;
		     case'u':
		    case'U':u++; break;
		     case'v':
		    case'V':v++; break;
		     case'w':
		    case'W':w++; break;
		     case'x':
		    case'X':x++; break;
		     case'y':
		    case'Y':y++; break;
		     case'z':
		    case'Z':z++; break;
		    
		} 
         itemp++;  
        
    }
 
}









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -