Инвертирование символов с использованием рекурсии и указателей
В прошлый раз я решал задачу по инвертированию символов. Тогда в задаче я применял массивы. Теперь же захотелось усложнить задачу. В этом примеру происходит тоже самое, но уже с использованием рекурсии и указателей.
В переменную задается строка символов. Далее эта строка передается в функцию. Используются дополнительные переменные. С помощью функции sdvig происходит смещение всех символов влево, далее выполняется само инвертирование.
Исходный код:
#include <stdio.h>
#include <string.h>
int func (char *a, int rez)
{
int i;
char tmp;
/*printf("%s\n",a);*/
if (rez<=1)
return 1;
tmp=a[0];
sdvig (a, rez);
a[rez-1]=tmp;
func(a, rez-1);
}
int sdvig (char *a, int n)
{
int i;
for(i=1;i<n;i++)
{
a[i-1]=a[i];
}
}
main()
{
char a[]="asdfghjkl";
int rez=0;
rez=strlen(a);
printf("\nНачало:%s\n", a);
func (a, rez);
printf("\nРезультат:%s\n", a);
}
