Guest - Lucas - Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 A idéia é imprimir uma string invertida (ex: abc p/ cba). Do jeito que tá o compilador não acusa erros e o programa não imprime nadaobs: Já tentei printf(%s ou %c, str2) /* inverte string */#include <stdio.h>#include <string.h>main(){int cnt=0, count;char str1[100], str2[100];puts("Digite uma string qualquer: ");gets(str1);for (count=strlen(str1);count>=0; count--) { str2[cnt]=str1[count]; cnt++ }str2[cnt]='\0';printf(str2);puts("\n");return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 é.....realmente não mostrará o conteúdo da sua variável....tente assim: /* inverte string */ #include <stdio.h> #include <string.h> main() { int cnt=0, count; char str1[100], str2[100]; puts("Digite uma string qualquer: "); gets(str1); for (count=strlen(str1);count>=0; count--) { str2[cnt]=str1[count]; cnt++ } str2[cnt]='\0'; printf("%s",str2); //essa linha foi modificada puts("\n"); return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - lucas - Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 Valeu pela tentativa..Mas como eu já tinha dito: " obs: Já tentei printf(%s ou %c, str2) " Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 então debuge seu código....verifique se sua variavel str1 está recebendo valor........verifique o tamanho dela.....use o printf para isso!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 amigo.....o problema está na impressão da variável str2.....tente assim: /* inverte string */ #include <stdio.h> #include <string.h> main() { int cnt=0, count, i; char str1[100], str2[100]; puts("Digite uma string qualquer: "); gets(str1); for (count=strlen(str1);count>=0; count--) { str2[cnt]=str1[count]; //printf("%c\n",str2[cnt]); cnt++; } str2[cnt]='\0'; for(i=0;i<cnt;i++) { printf("%c",str2[i]); } printf("\n"); return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Lucas - Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 O problema era simples..O erro estava no laço FOR: for for (count=strlen(str1) ;count>=0; count--)strlen() conta o '\0' da string também, com isso eu tava iniciando a string com 0 !!!Bastou por o -1 na frente Ficou assim: for (count=strlen(str1) -1 ;count>=0; count--) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Lucas -
A idéia é imprimir uma string invertida (ex: abc p/ cba).
Do jeito que tá o compilador não acusa erros e o programa não imprime nada
obs: Já tentei printf(%s ou %c, str2)
/* inverte string */
#include <stdio.h>
#include <string.h>
main()
{
int cnt=0, count;
char str1[100], str2[100];
puts("Digite uma string qualquer: ");
gets(str1);
for (count=strlen(str1);count>=0; count--)
{
str2[cnt]=str1[count];
cnt++
}
str2[cnt]='\0';
printf(str2);
puts("\n");
return (0);
}
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.