Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Snoogy

Invertendo Strings

Recommended Posts

Boa Noite Galera!

Poderiam me ajudar ? Preciso alterar a função de tal forma que inverta palavra por palavra e não a frase inteira (exemplo: você digita a palavra "pasta de dente" e será impresso na tela "atsap ed etned").

 

Fiz abaixo , porém a função me devolve apenas a frase inteira:

 

# include <stdio.h>
# include <conio.h>
# include <string.h>
# include "pilhas.h"

int main ( ) {
printf ( "Programa: ed_p_22.c\n" ) ;
int i;
tpPilha pilha;
char palavra [ 30 ] ;
printf ( "Digite uma frase: " ) ;
gets ( palavra ) ;
init ( &pilha ) ;
for ( i = 0; i <= strlen ( palavra ) ; i++ )
push ( &pilha, palavra [ i ] ) ;
printf( "\n\nValor devolvido => " ) ;
while ( isEmpty ( &pilha ) == 0 )
printf ( "%c", pop ( &pilha ) ) ;
getch ( ) ;
return 0 ;
}

 

Poderiam me ajudar ?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Snoogy      eu ainda não sei mexer com pilha push e pop,  mas se servir fazer

com vetores então pode ser feito assim :

#include <stdio.h>
#include <string.h>
char frase [300];
char frase2[305];
int b,c,d,f,i,j;
int main(){
    printf("       Vamos Inverter As Palavras\n\n");
    printf("Digite Uma Frase Com Ate 300 Caracteres: ");
    gets(frase);
    c=0;d=0;
    f=strlen(frase);          /*pega o tamanho da frase*/
    for(i=0;i<f;i++){
        if(frase[i]==' '){    /*verifica quantos espaços tem na frase*/
            d++;
        }
    }
    if(d==0 && f > 0){       /*se na frase não tem nenhum espaço mas tem uma palavra*/
        for(i=f-1;i>=0;i--){ /*pegando da ultima letra da palavra ate a primaeira*/
            printf("%c",frase[i]);/*imprime ela na tela ao contrario*/
        }
    }
    if(f==0){printf("\nVoce Nao Digitou Nada...!\n\n");}
    if(d>0){
        frase2[0]=' ';                  /*coloca um espaço no começo da frase*/
        for(i=0;i<f;i++){frase2[i+1]=frase[i];}/*frase2 igual frase*/
        frase2[f+1]='.';                /*coloca um ponto no final da frase*/
        for(i=1;i<=f+1;i++){            /*vai percorrer toda a frase*/
            if(frase2[i]==' ' || frase2[i]=='.'){  /*um espaço fim da palavra*/
                c=i-1;                  /*pega a posição da ultima letra da palavra*/
                while(frase2[c]!=' '){  /*repete ate encontrar um espaço na frase que é o começo da palavra*/
                    printf("%c",frase2[c]); /*imprime a letra que esta nessa posição da frase*/
                    c--;                /*volta uma posição na frase*/
                }
                printf(" ");            /*coloca um espaço entre a palavra e a proxima*/
            }
        }
    }
    gets(frase);                        /*esper apertar enter*/
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×