Мне нужно написать функцию:
void swap (char * s1, char * s2);
Функция заменит содержимое обеих строк 1 и 2.
Ограничения:
В функции нигде не используется [] , но при работе с указателями необходимо выполнять работу, кроме того, необходимо совершать поездки с избирателями, что означает, что они фактически переместятся в другую ячейку по мере необходимости, и не будет оставаться в одном и том же месте все время.
• В функции нет циклов , то есть работа в рекурсии.
Я сделал функцию с указателем на указатель str **, но должен изменить ее на только один указатель str и рекурсивно . Как я могу это изменить?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str1="abc",*str2="xyz",*pRev;
swap(&str1, &str2);
printf("str1 is %s, str2 is %s", str1, str2);
getchar();
return 0;
}
//need *str NOT **str
void swap(char **str1, char **str2);
char * RevWords (char * str, int size);
void swap(char **str1, char **str2)
{
char *temp = *str1_ptr;
*str1_ptr = *str2_ptr;
*str2_ptr = temp;
}
после метода обмена:
str2 = "abc", str1 = "xyz"