int main() {
	printf("str = ");
    char* str = console_read_line(20, 100);
    printf("reverse = %s\n", r_reverse(str, strlen(str), 0));
	free(str);
	return 0;
}
char* r_reverse(char* str, int len, int i) {
    if (i >= len / 2)
        return str;

    swap_char(&str[i], &str[len - i - 1]);
    return r_reverse(str, len, i + 1);
}
Ejemplo n.º 3
0
/* r_reverse: recursive helper */
void r_reverse(char s[], int left, int right)
{
	int tmp;
	
	if (left >= right)
		return;
	tmp = s[left];
	s[left] = s[right];
	s[right] = tmp;
	r_reverse(s, left+1, right-1);
}
Ejemplo n.º 4
0
/* reverse: reverse s in place */
void reverse(char s[])
{
	r_reverse(s, 0, strlen(s)-1);
}