我想使用密钥字符串对 C 中的字符串进行编码。该encodeMSG
函数返回 int 数组,因此:
intArr[i] = the int value of msg[i] + the int value of key[i]
.
如果 key 字符串的长度比 msg 字符串短,它应该回到开头(循环)。
我不确定我应该怎么做,虽然它看起来不太复杂。
我也不确定我应该使用atoi(msg + i)
还是像(int)(*(msg + i))
.
int *encodeMSG(char *msg, char *key)
{
int i, msgLen;
int *encodedArr = (int *)malloc(strlen(msg) * sizeof(int));
char *keyBackup = key;
msgLen = (strlen(msg));
for (i = 0; i < msgLen; ++i)
{
if (*(key + i) == '\0')
key = keyBackup;
*(encodedArr + i) = *(msg + i); //creating an integer-represented array of the char array [msg]
*(encodedArr + i) += *(key + i); //adding the [key] array integer values to the integer-represented array of the message
}
return encodedArr;
}