修改以下代码:#include<stdio.h> #include<string.h> int main() { int i=0,j,k; char word[80][80]; FILE*fp=fopen("file1.txt","r"); while(fscanf(fp,"%s",word[i])!=EOF){ for(j=0;j<sizeof(word[i]);j++){ if(word[i][j]+4<=26){ word[i][j]=word[i][j]+4; } else{ word[i][j]=word[i][j]-22; } } i++; }printf("%s",word); fclose(fp); }
时间: 2023-11-16 13:06:14 浏览: 68
修改后的代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
int i = 0, j, k;
char word[80][80];
FILE *fp = fopen("file1.txt", "r");
while (fscanf(fp, "%s", word[i]) != EOF) {
for (j = 0; j < strlen(word[i]); j++) {
if (word[i][j] + 4 <= 'z') {
word[i][j] = word[i][j] + 4;
} else {
word[i][j] = word[i][j] - 22;
}
}
i++;
}
for (j = 0; j < i; j++) {
printf("%s ", word[j]);
}
fclose(fp);
return 0;
}
```
主要的修改包括:
1. 在第12行中,将 sizeof(word[i]) 修改为 strlen(word[i]),因为我们需要获取字符串的长度而不是数组的长度。
2. 在第14行中,将 26 修改为 'z',因为我们需要比较字符而不是数字。
3. 在第19行后添加了一个循环,用于输出加密后的字符串。
4. 在最后添加了 return 0; 语句,表示程序正常结束。
阅读全文