Перевести код реализации XOR с C++ Builder - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите перевести код с билдера в чистый Си
...
#include "math.h"
...
String strText;
...
void __fastcall TForm1::MathCrypt(void)
{
        for (int i=1;i<=strText.Length();i++)
        {
        char mask=sin(i)*4000-cos(i)*250/20;
        strText[i]=(strText[i] ^ mask);
        }
}
...
MathCrypt();
...
или на худой конец обычный хор
AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]);
        }
return out;
}

Решение задачи: «Перевести код реализации XOR с C++ Builder»

textual
Листинг программы
char *strText;
 
void MathCrypt(void)
{
    int i;
    char mask;
    for(i=0;i<strlen(strText);i=i+1);
    {
        mask=sin(i)*4000-cos(i)*250/20;
        strText[i]=strText[i]^mask;
    }
}

Объяснение кода листинга программы

  1. Объявлена переменная типа char* — strText, которая будет использоваться в функции MathCrypt.
  2. В функции MathCrypt объявлены две переменные типа int — i и mask.
  3. В цикле for переменной i присваивается значение 0, а условие цикла — i<strlen(strText).
  4. Выполняется приведение типа cos(i) и sin(i) к int.
  5. Переменная mask получает значение sin(i)4000-cos(i)250/20.
  6. При выполнении операции ^ (XOR) между strText[i] и mask, результат записывается в strText[i].
  7. Выполняется инкремент i на 1.
  8. Цикл for повторяется до тех пор, пока i меньше длины строки strText.
  9. В конце функции MathCrypt переменная strText остается неизменной.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5