[C]exercicio basico

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++)
{
}
}
 
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.
 
int i=strlen(string),x;

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




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]
 
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.
 
Back
Topo