Ir ao conteúdo
  • Cadastre-se

Código para função Inverte


Ewerton Costa

Posts recomendados

Bom dia amigos, estou fazendo alguns trabalhos de c++ e me deparei com uma quesçao que não consegvui gerar um codigo, a questçao é:

 

Crie uma função inverte() que receba um vetor de caracteres (string),
definida pelo usuário, e devolve o vetor de caracteres invertido. Imprima
o vetor de caracteres no final. Observação: Sua função deve inverter a
posição de todos os elementos e NÂO imprimir o vetor original ao
contrário.
 
alguem pode ver como fazer isso?
 
Grato
Link para o comentário
Compartilhar em outros sites

Em C, uma string é um vetor de char, certo?

Considere um vetor x:

 

char x[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' };

 

O que você quer fazer é trocar 'a' por 'i'... depois 'b' por 'h'... 'c' por 'g', etc.

Até ficar com o vetor assim:

 

char y[] = { 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a' };

 

A posição de 'a' inicialmente é 0.

A posição de 'i' é 8.

 

Na segunda iteração, a posição de 'b' é 1.

A posição de 'h' é 7.

 

Como pode ver, numa ponta da string a posição tá aumentando, e na outra ponta ela tá diminuindo.

 

Seria o mesmo que escrever:

pos[n] <--troca--> pos[tamanhoString]

pos[n+1] <--troca--> pos[tamanhoString-1]

pos[n+2] <--troca--> pos[tamanhoString-2]

pos[n+3] <--troca--> pos[tamanhoString-3]

...

 

É só criar um FOR simples varrendo a array e fazendo as trocas.

Note que quando chegar na metade da string (a posição do caractere 'e'), você já terá feito todas as trocas.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...