LINUX.ORG.RU

Reverse


0

0

Как написать функцию reverse(s) которая инвертирует строку
именно с рекурсией

anonymous

инвертирует - это что? и зачем рекурсия?

grustnoe ★★
()

А это случаем не домашнее задание?
Уж больно постановка вопроса похожа.
И какой язык?
А то ведь могу и на lisp-е зафигачить :-))). Там рекурсия
для такой задачи более естественна.

Ну ладно, предположим, что C.

#include <string.h>

void reverse(char *str, int len)
{
	char swap;

	if (len>1){
		swap = str[0];
		str[0] = str[len-1];
		str[len-1] = swap;
		reverse(str+1, len-2);
	}
}

int main(int argc, char* argv[])
{
	int i;

	if (argc<2){
		printf("Use reverse string [, string]");
	}
	else{
		for(i=1;i<argc;++i){
			printf("\"%s\"\n", argv[i]);
			reverse(argv[i], strlen(argv[i]));
			printf("\"%s\"\n", argv[i]);
			printf("------------\n");
		}
	}

	return 0;
}

DKorolkov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.