Я пытаюсь преобразовать символ в строку, которая хранится в argv[1]
, и переменную int с именем k
, которая будет иметь соответствующее значение ASCII
.
Кроме того, этот символ, который я создаю, также будет постоянно изменяться с помощью цикла for, управляемого другой переменной int с именем c
. Я отправляю код ниже.
Дайте мне знать, что я делаю неправильно, потому что я продолжаю получать много разных сообщений об ошибках.
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, string argv[])
{
int a = argc;
if (a != 2)
{
return 1;
}
string b = argv[1];
//b IS THE CODE WORD
string ptext;
//ptext IS THE MESSAGE TO BE ENCRYPTED
if (isalpha(b))
{
ptext = GetString();
}
else
return 1;
//this is to index the letters within the code word
for (int c = 0, d = strlen(b); c < d; c++)
{
int k = (b(char[c]));
//this is to index the letters within the plaintext
for (int i = 0, l = strlen(ptext); i < l ;i++)
{
while (isalpha(ptext[i]))
{
printf("%c", b[c]%d+k);
}
}
}
}
Рассматриваемая часть находится на 11 строчке снизу.
string
? - person Oliver Charlesworth   schedule 24.07.2015typedef char *string;
. Не смущает, совсем нет... - person M.M   schedule 24.07.2015int k = (b(char[c]));
должно читаться какint k = b[c] - '0';
, ноb[c]%d+k
позже будет неправильным, вам нужно будет переосмыслить это. Кроме того,isalpha(b)
является незаконным, вы должны были получить сообщения компилятора об этом. - person M.M   schedule 24.07.2015char
— целочисленный тип в C. - person M.M   schedule 24.07.2015C
илиC++
? - person Pawan   schedule 24.07.2015int k = b[c] - '0';
равноb[c] - 0x30
. Номера ASCII начинаются с 0x30 до 0x39. Очевидно, что этот тип преобразования работает только с одной цифрой. - person LPs   schedule 24.07.2015b(char[c])
— синтаксическая ошибка. Оператор[ ]
должен иметь в качестве операндов два объекта, а не имя типа. Кромеb[c]
, нет никакой другой разумной комбинацииb
иc
. - person M.M   schedule 24.07.2015string
, скорее всего, является не массивомchar
, а указателем наchar
, то естьchar *
. - person alk   schedule 24.07.2015