1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C]exercicio basico

Discussão em 'Programação' iniciada por Ruanes, 17 de Junho de 2008. (Respostas: 9; Visualizações: 984)

  1. Ruanes

    Ruanes Power Member

    oi tenho aqui um exercicio para fazer:

    Faça um programa que inverta uma string: leia a string com gets e armazene-a invertida noutra string. Use o comando for para varrer a string até ao seu final.

    O que já fiz foi
    Código:
    #include <stdio.h>
    int main()
    {
    char string[100];
    char stringalt[100];
    int i;
    gets(string);
    for (i=0;string[i]!='\0';i++)
    {
    }
    }
     
  2. arconada

    arconada Power Member

    Não era suposto colocares a duvida? do estilo: Não sei fazer isto podiam me ajudar... ou queres que coloquem o código?
     
  3. A forma mais simples é percorreres do fim para o início e ires colocando o que encontras na nova string. (Não te esqueceas de adicionar depois o NUL no fim.)

    Mais simples que isto não estou a ver.
     
  4. h4des

    h4des Power Member

    int i=strlen(string),x;

    for(x=0; x<=strlen(string); x++) {
    stringalt[x] = string;
    i--;
    }

     
  5. Ruanes

    Ruanes Power Member

    o teu codigo nao funciona aparece-me isto:

     
  6. arconada

    arconada Power Member


    onde é que colocaste o codigo que ele te deu?
     
  7. MPalhas

    MPalhas Power Member




    duas correcções:
    Código:
    int x, i=strlen(string)-1;  [COLOR=Red]//se a string tiver 10 chars, vai de 9 a 0, senão começava logo por escrever o caracter nulo[/COLOR]
    
    for (x=0; x<strlen(string); x++) {
    [FONT=monospace][FONT=verdana]stringalt[/FONT][/FONT][x] = string[i];
    i--;
    }
    [FONT=monospace][FONT=verdana]stringalt[/FONT][/FONT][x]='\0';  [COLOR=Red]//caracter nulo no final da nova string[/COLOR]
     
  8. Rui_Carlos

    Rui_Carlos 1st Folding then Sex

    Meter um strlen no for não é lá muito inteligente, pois a cada iteração vai ter que calcular o tamanho da string...
     
  9. MPalhas

    MPalhas Power Member

    nada que também não se corriga facilmente. isso também já são optimizações
     
  10. Ruanes

    Ruanes Power Member

    Obrigado ja consegui e já percebi o que é que tinha mal:

    No codigo do MPAlhas:
    Código:
    int x, i=strlen(string)-1;  [COLOR=red]//se a string tiver 10 chars, vai de 9 a 0, senão começava logo por escrever o caracter nulo[/COLOR]
    
    for (x=0; x<strlen(string); x++) {
    [FONT=monospace][FONT=verdana]stringalt[/FONT][/FONT][x] = string[i];
    i--;
    }
    [FONT=monospace][FONT=verdana]stringalt[/FONT][/FONT][x]='\0';  [COLOR=red]//caracter nulo no final da nova string[/COLOR]
    tinha-mos que primeiro usar o gets e depois é declarava-mos a variavel i.
     

Partilhar esta Página