Função recursiva para inverter um vetor de caracteres

Publicado por Kleber de Andrade Reis em 04/11/2004

[ Hits: 32.830 ]

 


Função recursiva para inverter um vetor de caracteres



Olá galera!

Achei interessante postar isso aqui para ajudar no conhecimento daqueles que estão iniciando o estudo em C. Esse código faz a inversão de um vetor de caracteres usando uma função recursiva.

#include

void inv(char *string)
{
if(*string)
{
inv(string+1);
putchar(*string);
}
}
int main()
{
inv("kleber");
return 0;
}
Outras dicas deste autor

Conversão vetor de caracteres para double

Desligando Slackware com fonte ATX automaticamente

Ocorrência de uma string em outra

Leitura recomendada

Kylix - Ferramenta para programadores Delphi

Recursão em C

Limpando o buffer do teclado em C

Exibindo código ASCII das teclas

Programando no Ubuntu - aplicações gráficas em C++ com Eclipse e Glade

  

Comentários
[1] Comentário enviado por kandrade em 05/11/2004 - 08:10h

Desculpem galera.....eu sou novo por aqui.......eu deveria comentar o programa.........

então vamos lá.......na ordem de execução........

obs.: eu mudei o nome do parametro da função inv para uma melhor compreensão...........

int main()
{
inv("linux"); //quando vc chama a função inv passando uma string
//ela atribui ao ponteiro str o endereço de memória
//do primeiro caracter da string.....nesse caso 'l'
return 0;
}

void inv(char *str)
{
if(*str) //se o conteúdo do ponteiro "*str" for diferente de 0..........
{
inv(str+1); //soma 1 na posição de memória
//o programa chama a função novamente
//o endereço do proximo caracter como parametro
putchar(*str); //quando ele sair de if terminando assim
//a função ele vai retornando os caracteres
//pendentes e é assim q ele mostra o inverso...
}
}

[2] Comentário enviado por jochan em 14/12/2005 - 14:44h

Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts