Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Dúvidas de C (Eclipse)
13-10-2009, 23:41 (Esta mensagem foi modificada pela última vez a: 15-10-2009 10:22 por rei007.)
Mensagem: #2
RE: Dúvidas de C (Eclipse)
Boas,

Vê se isto te ajuda. Fiz esse trabalhinho para si e testei. No meu computador funcionou mas tive de fazer em windows 7 com visual studio 8 num compilador de C++. Não sei se vai funcionar nos seus requesitos. Experimenta e depois diz algo.
Código:
#include <stdio.h>
#include <string.h>

char *removerCaracteres(char *stringParaTratar, char caracterParaRemover);

void main(void)
{
     char stringParaTratar[80];
     char *stringTratada;
     char caracterParaRemoverNaString;
    
     printf("Introduza a sua string: ");
     fflush(stdin);
     scanf("%s",&stringParaTratar);
    
     printf("\n\nIntroduza o caracter que quer remover da string: ");
     fflush(stdin);
     scanf("%c",&caracterParaRemoverNaString);
    
     stringTratada = removerCaracteres(stringParaTratar,caracterParaRemoverNaString);
    
     printf("\n\nA sua string original era: %s", stringParaTratar);
     printf("\nA sua string tratada e: %s", stringTratada);
    
     fflush(stdin);
     getchar();
}

char *removerCaracteres(char *stringParaTratar, char caracterParaRemover)
{
     char *stringParaDevolver;
    
     size_t tamanhoDaString;
    
     int i;
     int j;
    
     tamanhoDaString = 0;
     i=0;
     j=0;
     stringParaDevolver = NULL;
    
     tamanhoDaString = strlen(stringParaTratar);//vê a quantidade de caracteres da string

     stringParaDevolver = (char *) malloc( sizeof( char ) * tamanhoDaString + 1 ); //Alocar memória

     memset( stringParaDevolver, 0x00, sizeof( char ) * tamanhoDaString + 1 );//Inicialização de uma secção de memória
    
     for(i=0; i<tamanhoDaString; i++)
     {
              if(stringParaTratar[i]!=caracterParaRemover)//Se o caracter da string for diferente do caracter a remover coloca numa nova string, caso contrário remove
              {
                      stringParaDevolver[j] = stringParaTratar[i];
                      j++;
              }
     }
    
     return (stringParaDevolver); //devolve o valor da nova string sobre o formato de ponteiro
}

Cumps,
Manuel Rocha

[Imagem: pplware_staff.png]
Licenciado em Informática para a Saúde pela ESTG Leiria
Mestrado em Informática - Especialização em Sistemas de Informação na Universidade Portucalense
Especialização em Design Gráfico
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
Dúvidas de C (Eclipse) - Pirotas - 13-10-2009, 22:02
RE: Dúvidas de C (Eclipse) - rei007 - 13-10-2009 23:41
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 00:25
RE: Dúvidas de C (Eclipse) - rei007 - 14-10-2009, 01:15
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 10:38
RE: Dúvidas de C (Eclipse) - rei007 - 14-10-2009, 10:48
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 12:01
RE: Dúvidas de C (Eclipse) - rei007 - 14-10-2009, 12:34
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 16:31
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 22:26
RE: Dúvidas de C (Eclipse) - dingas - 14-10-2009, 16:47
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 16:58
RE: Dúvidas de C (Eclipse) - rei007 - 15-10-2009, 10:20
RE: Dúvidas de C (Eclipse) - dingas - 14-10-2009, 21:42
RE: Dúvidas de C (Eclipse) - Pirotas - 14-10-2009, 22:46
RE: Dúvidas de C (Eclipse) - dingas - 16-10-2009, 12:32
RE: Dúvidas de C (Eclipse) - Pirotas - 15-10-2009, 10:37

Saltar Fórum:


Utilizadores a ver este tópico: 4 Visitante(s)