キー文字列を使用して C で文字列をエンコードしたいと考えています。encodeMSG
関数は int 配列を返すため、次のようになります
intArr[i] = the int value of msg[i] + the int value of key[i]
。
キー文字列の長さがメッセージ文字列よりも短い場合は、先頭に戻る必要があります (サイクル)。
複雑すぎないように見えますが、これをどのように行うべきかわかりません。また、のような単純なキャスト
を使用する必要があるかどうかもわかりませんでした。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;
}