Ir para conteúdo
Fórum Script Brasil
  • 0

Invertendo Uma String


Daniel Andrade

Pergunta

Estou com problemas no uso de strrev(), não consigo entender para aplicar corretamente.

Quero obter um vetor com os carcateres invertidos. Mas não consigo "salvar o resultado"

O que atrapalha é que opera com ponteiro,explica como devo trabalhar com

strrev()

//Variaveis globais
const char combi[6][6]={"EFGM","EFLM","EFGHN","EFGMN","EFLMN","EJLMN","FLJ"};

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

seu codigo ta errado veio

De fato, acho que houve uma certa confusão ali. A função strrev() espera um char * e não um char. Não é preciso um loop para inverter a string. Aqui vai um exemplo:

    char *s = "teste";

    printf("antes: %s\n", s);

    strrev(s);

    printf("depois: %s\n", s);

e tipo, se for pra uma string de um tamanho q eu não sei :| ??

As "strings" em C são nada mais do que vetores de chars. E como vetores têm tamanhos definidos, as "strings" também têm. Entretanto, existem maneiras de se redimensionar um vetor, portanto pode-se redimensionar uma string também.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
e tipo, se for pra uma string de um tamanho q eu não sei :| ??

Você pode usar uma função q eu fiz hj a tarde.. mas o numero máximo de caracteres q a scring pode ter é 1000. Bom.. não sei se funciona com qualquer string.. testei com algumas.. tente compilar este exemplo:

#include <stdio.h>
char *inverte(char *string){
char *retornador;
int i;
int ii;
int iii=0;
char strtmp[1000];
char strout[1000];
char strout2[1000];
i=0;
ii=0;
sprintf(strtmp,"%s",string);
while(strtmp[i]!= NULL){
i++;
iii++;
}
while(ii!=i+1){
strout[ii] = strtmp[iii];
ii++;
if(iii!=0){
iii--;
}
}
ii=0;
/*
while(ii<i){
strout2[ii] = strout[ii+1];

ii++;
}
*/
ii=0;
iii=0;

while(ii<i+1){
if(strout[ii] != NULL){
strout2[iii] = strout[ii];

iii++;
ii++;
} else {
//printf("%c",strout[ii]);
ii++;
}
}
strout2[iii] = NULL;
retornador = strout2;
return retornador;
}

int main(void){
const char combi[6][6]={"EFGM","EFLM","EFGHN","EFGMN","EFLMN","EJLMN"};
int i=0;
while(i<6){
printf("String normal:%s Inversa:%s\n",combi[i],inverte(combi[i]));
i++;
}
}

Até +!

smile.giflaugh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pelo apoio... resolvi mas não comprendi...Pois o problema era

char palavra="UVA";
strrev(palavra);
aqui variavel palavra = AVU
outras instruçoes
aqui variavel palavra = UVA

Dai não entendi porque acontecia, pra resolver copiei o conteudo em outra variavel.

Mas podem postar codigos, uma boa alternativa

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...