Ich stehe vor dem Problem, während ich den unten stehenden Code für vigenere cipher laufen lasse. Nachdem ich gründlich gegangen bin, kann ich das Problem nicht beheben. es zeigt den Fehler an: getötet von server.please help.Vigenere Cipher
/**
*
* vigenere.c
*
* Abhishek kumar
* encrypts entered string using vigenere cipher
* */
#include <stdio.h>
#include <stdlib.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
int main(int argc, string argv[])
{
if (argc != 2)
{
printf("Usage: /home/cs50/pset2/vigenere <keyword>");
return 1;
}
if (argc == 2)
{ string key = argv[1];
for(int k = 0,l = strlen(key);k < l; k++)
{
if(!isalpha(key[k]))
{
printf("Keyword must only contain letters A-Z and a-z");
exit(1);
}
}
string txt = GetString();
int i = 0,j = 0,c = 0;
int n = strlen(txt);
int m = strlen(key);
while(i < n)
{
if (isupper(txt[i]))
{
if(isupper(key[j]))
{
c = ((((int) txt[i] - 65 + (int) key[j] -65)%26) + 65);
printf("%c", (char) c);
i++;
j++;
}
if(islower(key[j]))
{
c = ((((int) txt[i] - 65 + (int) key[j] -97)%26) + 65);
printf("%c", (char) c);
i++;
j++;
}
}
else if (islower(txt[i]))
{
if(isupper(key[j]))
{
c = ((((int) txt[i] - 97 + (int) key[j] -65)%26) + 97);
printf("%c", (char) c);
i++;
}
if(islower(key[j]))
{
c = ((((int) txt[i] - 97 + (int) key[j] -97)%26) + 97);
printf("%c", (char) c);
j++;
}
}
else
{
printf("%c",txt[i]);
i++;
}
if (j == m-1)
{
j = 0;
}
}
}
}
unten sind einige der Testfälle, in denen es versagt.
:) vigenere.c exists
:) vigenere.c compiles
:(encrypts "a" as "a" using "a" as keyword
\ killed by server
:(encrypts "world, say hello!" as "xoqmd, rby gflkp!" using "baz" as keyword
\ killed by server
:(encrypts "BaRFoo" as "CaQGon" using "BaZ" as keyword
\ expected output, but not "CGSFpp"
:(encrypts "BARFOO" as "CAQGON" using "BAZ" as keyword
\ expected output, but not "CASFPO"
:) handles lack of argv[1]
:) handles argc > 2
:) rejects "Hax0r2" as keyword
Bitte fügen Sie einige Beispieleingabe und gewünschte Ausgabe hinzu. – merlin2011
bitte eine Frage stellen – dustinroepsch
bearbeitet, Kasse jetzt .. –