for(i=0i<strlen(encrypt)i++)
fscanf(kptr,"%d ",&key[i])
#include <stdio.h>main() {
FILE *fp1,*fp2
char a[100]
char secret[]="Kirschsaft!"
int i,j
fp1 = fopen("source.txt","r")
fp2 = fopen("result.txt","w")
if (fp1 == NULL || fp2 == NULL)
return
while(fgets(a,100,fp1)!=NULL){
for(i=0,j=0a[i]!='\n'i++,j++){
if(j==11)
j=0
if((int)a[i]>=32){
a[i]=a[i]^secret[j]
if((int)a[i]<32){
a[i]=a[i]+32
}
}
}
for(j>0&&j<11j++,i++){
a[i]=secret[j]
}
a[i++]='\n'
a[i]='\0'
fprintf(fp2,"%s",a)
}
}
应该是限制高3位,使得每个字符的ASCII码大于0010 0000,即32。
我的策略是如果做完异或之后的ASCII码小于32就给他加32.