fgets 函数
每次读取一行 且会读入 ‘\n’换行符 虽然会补充 ‘\0’ 但是在本程序的加密过程中 '\n’也参与了运算 故显示出其加密后的字符。
解决方法也简单。把判断条件改为
for(i = 0; str[i]!='\n'; i++)
源代码
#include <stdio.h>
#define MAX 20
void encrypt(char str[MAX], int key)
{
int i;
for(i = 0; str[i]!='\0'; i++)\\这里有问题
{
str[i]=(char)((int)str[i]+i+key);
}
printf("%s", str);
}
int main()
{
char str[MAX];
fgets(str, MAX, stdin);
int key;
scanf("%d", &key);
encrypt(str, key);
return 0;
}