Ошибка сегментации и правильны ли мои логики c? (CS50PSET3SPOİLER) - PullRequest
0 голосов
/ 01 мая 2020

Мой вопрос о PSET CS50. Цель состоит в том, чтобы создать какую-то программу шифрования. Из аргументов командной строки вводится ключ, и каждая буква ключа должна быть заменена буквой алфавита. В качестве примера:

$ ./substitution YTNSHKVEFXRBAUQZCLWDMIPGJO

plaintext:  HELLO

ciphertext: EHBBQ 

Мой код еще не совсем подходит для концепции, но я беспокоюсь, что даже логика c протекала в нем. Это дает ошибку сегментации после того, как это выполнено, и я не полностью уверен с логи c. Некоторая помощь будет хорошей. Спасибо всем за ваше время.

#include <stdio.h>
#include <cs50.h>
#include <string.h>
int main(int argc,string argv[]){
int i,p;
                 //JTREKYAVOGDXPSNCUIZLFBMWHQ
string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string plaintext = get_string("plaintext: ");
for(i=0,p=0;i<26;i++,p++)
{while (p<=strlen(plaintext)&&((int)argv[1][i]>=65||(int) argv[1][i]<=90))
    {

        if ((int)plaintext[p] == (int)alphabet[i])
        {plaintext[p] = (int)argv[1][i];}
        i++;
    }

}
printf("%s\n",plaintext);
}
...