MarcelPR Postado Maio 4, 2010 Denunciar Share Postado Maio 4, 2010 Boa noite, comecei fazer este código, mais dei uma enroscada aqui será q alguém poderia por o q esta faltando ai?Obrigado!O exercicio pede:Faça um programa que leia uma string e a inverta, imprimindo astring invertida na tela.#include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; int tr_in; printf("Digite a string dee\n"); gets(tr_in); len=strlen(str_in); char str_out[len]; str_out[len]=''; return (str_in); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 4, 2010 Denunciar Share Postado Maio 4, 2010 Primeiro você não pode retornar uma string dentro da função main. Portanto você tem que retornar um número inteiro como 0.Pra inverter, use um for:char str_out[len+1]; for(int i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; ...Vê se o código funciona, não testei. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Maio 4, 2010 Denunciar Share Postado Maio 4, 2010 Também dá pra fazer de uma forma direta: (também não testei!)int _i; for(_i = strlen(str_in); _i >= 0; --_i) { printf("%c", str_in[_i]); } printf("\n");Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 4, 2010 Autor Denunciar Share Postado Maio 4, 2010 Olá amigoeu fiz o q voce disseestá dando alguns erros na gets.tenta ver pra mim ai fazendo favor!Obrigado!#include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; int tr_in; printf("Digite a string dee\n"); gets(tr_in); len=strlen(str_in); char str_out[len+1]; for (int i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Maio 4, 2010 Denunciar Share Postado Maio 4, 2010 Você tem que usar gets(str_in), não gets(tr_in).Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 5, 2010 Autor Denunciar Share Postado Maio 5, 2010 Olá amigosestá rodando agorakkmais não da fazendo a coisa certao q ponho para aparecer a inversao?abraço! #include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; printf("Digite a string de entrada\n"); gets(str_in); len=strlen(str_in); char str_out[len+1]; for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 maryT Postado Maio 5, 2010 Denunciar Share Postado Maio 5, 2010 Olá amigosestá rodando agorakkmais não da fazendo a coisa certao q ponho para aparecer a inversao?abraço! #include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; printf("Digite a string de entrada\n"); gets(str_in); len=strlen(str_in); char str_out[len+1]; for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; return (0); }oi!Tem a função strrev que imprime uma string invertida, tentasse usá-la? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Maio 5, 2010 Denunciar Share Postado Maio 5, 2010 Falta imprimir a variável com o printf.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 5, 2010 Autor Denunciar Share Postado Maio 5, 2010 desconheço esta! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 maryT Postado Maio 6, 2010 Denunciar Share Postado Maio 6, 2010 desconheço esta!por exemplo:printf("Palavra invertida ==> %s",strrev(string)); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 6, 2010 Denunciar Share Postado Maio 6, 2010 Olá amigosestá rodando agorakkmais não da fazendo a coisa certao q ponho para aparecer a inversao?abraço!Faltou você imprimir a variável str_out. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 16, 2010 Autor Denunciar Share Postado Maio 16, 2010 É isso ai galera obrigado só falta fazer um break, porque aparece a string e fecha o programa!Queria fazer dar um pause quando aparece a string!#include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; printf("Digite a string de entrada\n"); gets(str_in); len=strlen(str_in); char str_out[len+1]; for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; str_out[len] = '/0'; printf("A Palavra invertida é %s",str_out); } return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 17, 2010 Denunciar Share Postado Maio 17, 2010 Usa a função getchar depois do ultimo printf e antes do return 0. Agora por que a função que mostra a string invertida tá dentro do for?... for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; printf("A Palavra invertida é %s",str_out); getchar(); return 0;Depois posta o resultado. Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 17, 2010 Autor Denunciar Share Postado Maio 17, 2010 Agora sim ta funcionando normalobrigado mesmo!só imprimi uns sinais nada a ver na string invertidamais axo que não tem nada a verroda ai pra voce ver!Obrigado pela ajuda!#include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; printf("Digite a string de entrada\n"); gets(str_in); len=strlen(str_in); char str_out[len+1]; for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '/0'; printf("A Palavra invertida e %s", str_out); getchar(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 17, 2010 Autor Denunciar Share Postado Maio 17, 2010 (editado) Surgiu outra dúvida aqui em outro código da minha lista gente!ta dando erro no segundo for!Qual seria o erro?obrigado!1) Faça um programa que leia dez números inteiros, armazena-os emuma matriz unidimensional e inverta a ordem dos números na matriz.Imprima na tela os números nas ordens direta e reversa.# include < stdio.h > # include < conio.h > void main ( ) { int maxA[10], maxB[10], i; for (i = 0; i < 10; i ++) { printf (" Informe o Valor "); scanf ( "%d", &maxA[i] ); if ( maxA[i]%2 == 0) { maxB[i]= maxA[i] * 5; } else { maxB[i] = maxA[i] + 5; } } for (int j=0; j<10; j++) { printf("%d", matB[i]); } } Editado Maio 17, 2010 por MarcelPR Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 17, 2010 Denunciar Share Postado Maio 17, 2010 (editado) ... só imprimi uns sinais nada a ver na string invertida...Foi erro meu, onde tem '/0' você coloca '\ 0'.... str_out[len] = '\ 0'; ...Foi mal, testa agora e posta o resultado depois.Obs. Coloquei o \ 0 separado para aparecer aqui, mas ele é junto. Editado Maio 18, 2010 por RonaldoRG Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 18, 2010 Autor Denunciar Share Postado Maio 18, 2010 (editado) Era aquilo mesmosó a barra do 0 estava invertida!rs.Ta concertado agora!Obrigado!#include<stdio.h> #include<conio.h> main() { char str_in[10]; int i,len; printf("Digite a string de entrada\n"); gets(str_in); len=strlen(str_in); char str_out[len+1]; for (i=0; i<len; i++) { str_out[i] = str_in[(len-1) - i]; } str_out[len] = '\ 0';/*Sem espaço entre \ e 0*/ printf("A Palavra invertida e %s", str_out); getchar(); return 0; }Entre as duas aspas simples (str_out[len] = '\ 0';) tem , não aparece no código! Editado Maio 18, 2010 por MarcelPR Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
MarcelPR
Boa noite,
comecei fazer este código, mais dei uma enroscada aqui
será q alguém poderia por o q esta faltando ai?
Obrigado!
O exercicio pede:
Faça um programa que leia uma string e a inverta, imprimindo a
string invertida na tela.
Link para o comentário
Compartilhar em outros sites
16 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.