Impressão de uma string ao contrário. Escreva uma função recursiva stringReverse que apanhe um array de caracteres como argumento, imprima-o de trás para a frente e não retorne nada. A função deverá encerrar o processamento e retornar quando o caractere nulo de finalização da string for encontrado.

Passo 1

Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.

Precisamos criar um programa que contenha uma função que seja capaz de receber uma string como parâmetro e retornar essa string invertida. Ou seja, se a string do nosso programa estiver os seguintes textos “Fala galerinha do RespondeAi” deverá retornar “iAednopseR od ahnirelaG alaF”

Podemos criar uma função que percorre as string inteira recursivamente trocando os valores da posição de cada caracteres jogando o primeiro para a ultima posição, o segundo para a penúltima posição e assim por diante.

Escrevendo nossa função ficará:

/* função para reverter uma string */

void stringReverse( char strArray[] )

{

/* retorna quando o caractere nulo é encontrado */

if ( strArray[ 0 ] == '\0' ) {

return;

} /* end if */

/* chama recursivamente stringReverse com nova substring */

stringReverse( &strArray[ 1 ] );

printf( "%c", strArray[ 0 ] );

/* elementos de string de saída */

} /* end function stringReverse */

Passo 2

Agora precisamos inicializar a função principal main() e definir a string que será passada como parâmetro para a função. Vamos definir a string char strArray[ SIZE ] = "Fala Galerinha do RespondeAi "; e passar ela como parâmetro para função :

#include

#define SIZE 30

void stringReverse( char strArray[] ); /* function prototype */

int main()

{

int loop; /* loop counter */

/* initialize string strArray */

char strArray[ SIZE ] = "Fala Galerinha do RespondeAi ";

/* display original string */

for ( loop = 0; loop

printf( "%c", strArray[ loop ] );

} /* end for */

printf( "\n" );

stringReverse( strArray ); /* reverse the string */

printf( "\n" );

return 0; /* indicate successful termination */

} /* end main */

Passo 3

Feito isso, teremos como saída do nosso programa:

E assim nosso programa está finalizado galera. Até o próximo exercício.

Resposta

#include

#define SIZE 30

void stringReverse( char strArray[] ); /* function prototype */

int main()

{

int loop; /* loop counter */

/* initialize string strArray */

char strArray[ SIZE ] = "Fala Galerinha do RespondeAi ";

/* display original string */

for ( loop = 0; loop

printf( "%c", strArray[ loop ] );

} /* end for */

printf( "\n" );

stringReverse( strArray ); /* reverse the string */

printf( "\n" );

return 0; /* indicate successful termination */

} /* end main */

/* function to reverse a string */

void stringReverse( char strArray[] )

{

/* return when null character is encountered */

if ( strArray[ 0 ] == '\0' ) {

return;

} /* end if */

/* recursively call stringReverse with new substring */

stringReverse( &strArray[ 1 ] );

printf( "%c", strArray[ 0 ] ); /* output string elements */

} /* end function stringReverse */