#include<stdio.h>
#include<cs50.h>
#include<ctype.h>
#include<string.h>
int main(int argc, string argv[]){
int k,j,i=0,ch,pos;
bool apha=true;
string in = GetString();
int num = strlen(in);
for(int z=0;z<strlen(argv[1]);z++){
if(!isalpha(argv[1][z])){
apha=false;
}
}
if(argc!=2||!apha){
printf("Dude we only accept alphabets...");
return 1;
}
string key = argv[1];
int keylength = strlen(key);
for (i=0,j=0;i<num;i++,j++){
if(isupper(key[i])){
k=key[j%keylength]-'A';
}
if(islower(key[i])){
k=key[j%keylength]-'a';
}
if(isupper(in[i])){
pos=in[i]-'A';
ch = ((pos + k)%26) + 'A';
printf("%c",ch);
}
if(islower(in[i])){
pos=in[i]-'a';
ch = ((pos + k)%26) + 'a';
printf("%c",ch);
}
if(isspace(in[i])){
printf(" ");
}
if(ispunct(in[i])){
printf("%c",in[i]);
}
}
printf("\n");
}
Выходной условие проверяет: :) vigenere.c существуетVigenere Cipher логическая ошибка
:) vigenere.c компилирует
:) шифрует "а" как "" с помощью "а", как ключевое слово
:(шифрует "мир, поздороваться!", как "xoqmd, RBY gflkp!", используя "БАЗ" в качестве ключевого слова
\ ожидаемого результата, но не "xoqkj, yfd gfllp! \ п"
:(шифрует "BaRFoo" как "CaQGon" с помощью "БАЗ" в качестве ключевого слова
\ ожидаемого результата, но не "CaQEun \ п"
:(шифрует "BARFOO" как "CAQGON", используя " БАЗ»в качестве ключевого слова
\ ожидаемого результата, но не "CAQEON \ п"
:(обрабатывает отсутствие ARGV [1]
\ ожидаемого результата, а не для ввода оперативной
:(ручки ARGC> 2
\ ожидаемого результата, а не приглашение для ввода
:(отвергает "Hax0r2" в качестве ключевого слова
\ ожидаемого результата, а не приглашение для ввода
Что не так с моим кодом? Я тщательно изучил логику, и, похоже, ошибка в том, как ключ был завернут, хотя я не мог найти никаких ошибок. Где я ошибся?
«.. \ ожидаемый вывод, а не подсказка для ввода». Это получило хмурое лицо, потому что нет кода, который запрашивает ввод? – usr2564301
Ну, может быть ... но что это простая ошибка (более или менее), это логическая ошибка, которая пугает меня. –
SO в основном полезен для запроса явных вопросов, отладка/исправление кода почти никогда не бывает полезным для других. Обратитесь за помощью в свое учреждение. –