これは私が取り組んでいる質問です。
「テキストを暗号化するための「rotate13」という名前の単純な暗号化スキームは、「z」から「a」または「Z」にループして、13 文字を前方にカウントすることにより、各文字 (a...z または A...Z) を別の文字に変換することです。 ' 必要に応じて 'A' に戻ります. 1 つの null で終わる文字列をパラメータとして受け取り, それを同等の文字列に変換する、rotate13 という名前の関数を作成します. 関数は文字列を直接変更する必要があり, 何も返してはなりません. 覚えておいてください.文字だけを変更する必要があります。他のすべての文字は同じままです。必要に応じてライブラリ内の任意の関数を使用できるように、ctype.h がプログラムの先頭に正しく含まれていると想定できます。"
そして、これは私が得続けるエラーです
"error C2664: 'rotate13' : cannot convert parameter 1 from 'char (*)[10]' to 'char *[]'"
助けてくれてありがとう。ファイナルの修正に役立ちます。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int rotate13(char *array[]);
int size=10;
int main()
{
char arr[10];
printf("Please enter the letters you wish to encrypt: ");
scanf("%s",&arr);
printf("%s",arr);
rotate13(&arr);
system ("pause");
return 0;
}
int rotate13(char *array[])
{
int pointer;
while(*array[pointer]!='\0')
{
if(isupper(*array[pointer])!=0)
{
if(*array[pointer]<'N')
*array[pointer]=*array[pointer]+13;
else
*array[pointer]=*array[pointer]-13;
}
else
{
if(*array[pointer]<'n')
*array[pointer]=*array[pointer]+13;
else
*array[pointer]=*array[pointer]-13;
}
pointer++;
}
printf("%s", *array);
return 0;
}