Это вопрос, над которым я работаю.У меня проблема с передачей по ссылке с помощью строки
«Простая схема шифрования с именем« rotate13 »для шифрования текста состоит в том, чтобы преобразовать каждую букву (a ... z или A ... Z) в другую букву, посчитав вперед 13 букв, перейдя от« z »в« a 'или' Z 'обратно в' A ', если необходимо. Напишите функцию с именем rotate13, которая принимает одну строку с нулевым завершением как параметр и преобразует ее в эквивалент rotate 13. Функция должна напрямую изменить строку, и это ничего не должен возвращать. Помните, что только буквы должны меняться, все остальные символы остаются . Вы можете предположить, что 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;
}
Не должен ли аргумент rotate 13 просто быть char *, чтобы весь массив * [указатель] можно упростить? – Atle
@Atle; Да! Но тогда OP должен удалить '*' из всех выражений внутри 'rotate13'. – haccks