Das wär mein Code bisher:
-------------------------------------------------------------------------------------------------------------------------------
unsigned int cipher(char* cipher_str, int start_key)
{
int cntChars = 0;
int divisor_rest = 2;
int value_key;
int rest;
int i;
int j;
int key = start_key;
for(i = 0; cipher_str[i] != '\0'; ++i)
i = i + 1;
for(j = 0; j <= i; j++)
{
if(start_key < 1)
{
break;
}
if((cipher_str[j] < 91 && cipher_str[j] > 64) ||
(cipher_str[j] < 123 && cipher_str[j] > 96))
{
cntChars++;
if(cipher_str[j] < 91 && cipher_str[j] > 64)
{
value_key = cipher_str[j] - 64;
rest = key%divisor_rest;
if(rest == 0)
{
cipher_str[j] = cipher_str[j] + key;
}
else if(rest != 0)
{
cipher_str[j] = cipher_str[j] - key;
}
if(cipher_str[j] > 90)
{
cipher_str[j] = cipher_str[j] - 90;
cipher_str[j] = 64 + cipher_str[j];
}
else if(cipher_str[j] < 65)
{
cipher_str[j] = 65 - cipher_str[j];
cipher_str[j] = 91 - cipher_str[j];
}
if(key != 0)
{
key = value_key%key;
}
else if(key < 1)
{
key = start_key;
}
}
if(cipher_str[j] < 123 && cipher_str[j] > 96)
{
value_key = cipher_str[j] - 96;
rest = key%divisor_rest;
if(rest == 0)
{
cipher_str[j] = cipher_str[j] + key;
}
else if(rest != 0)
{
cipher_str[j] = cipher_str[j] - key;
}
if(cipher_str[j] < 97)
{
cipher_str[j] = 97 - cipher_str[j];
cipher_str[j] = 123 - cipher_str[j];
}
else if(cipher_str[j] > 122)
{
cipher_str[j] = cipher_str[j] - 122;
cipher_str[j] = 96 + cipher_str[j];
}
if(key != 0)
{
key = value_key%key;
}
else if(key < 1)
{
key = start_key;
}
}
}
}
return cntChars;
}