Pular para o conteúdo

Função recursiva para inverter um vetor de caracteres

Dica publicada em C/C++ / Introdução
Kleber de Andrade Reis kandrade
Hits: 33.967 Categoria: C/C++ Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#include

void inv(char *string)
{
if(*string)
{
inv(string+1);
putchar(*string);
}
}
int main()
{
inv("kleber");
return 0;
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Conversão vetor de caracteres para double

Ocorrência de uma string em outra

Desligando Slackware com fonte ATX automaticamente

Pressionar tecla e não precisar pressionar ENTER

Error: C compiler cannot create executables (solucionado)

Usando comandos do sistema em C

Série de Fibonacci usando recursividade em linguagem C

getch() e getche() não funcionam no ANSI

#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

Entre na sua conta para comentar.