Мне интересно, что это за ошибка? Я делаю шифр причинщика, и он работает нормально, но когда я печатаю зашифрованное сообщение в конце, он перепечатывает незашифрованное сообщение. Когда я комментирую и устанавливаю сообщение в предложение, он отлично работает. Но когда я получаю строку с помощью fgets, она создает другую копию. Заранее спасибо!fgets() создает другую копию строки во время ввода?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
char message[100];
printf("Please Enter a message to be Encrypted: ");
fgets(message, 100, stdin);
unsigned char caeser[] = "";
int j = 0;
if(argc >= 2)
{
int k = atoi(argv[1]);
for(int i = 0, n = strlen(message); i < n; i++)
{
printf("%i\n",n);
if(!isspace(message[i]))
{
if(islower(message[i]))
{
j = message[i] - 97;
caeser[i] = 97 + ((j + k) % 26);
}
if(isupper(message[i]))
{
j = message[i] - 65;
caeser[i] = 65 + ((j + k) % 26);
}
}
else
{
caeser[i] = ' ';
}
}
printf("%s\n", caeser);
}
}
'caeser []' имеет только 1 байт, связанный с ним. Конечно, 'caeser [i] = 97 + ((j + k)% 26);' написал вне этого. – chux