Dúvidas de C (Eclipse)
|
13-10-2009, 22:02
(Esta mensagem foi modificada pela última vez a: 13-10-2009 22:03 por Pirotas.)
Mensagem: #1
|
|||
|
|||
Dúvidas de C (Eclipse)
Olá a todos,
iniciei-me há pouquíssimo tempo nesse mundo estranho da linguagem C, por obrigação académica claro, e já estou a necessitar de ajuda. Não é que eu queira que programem por mim mas nesta altura do campeonato ainda nem sei bem distinguir seja lá o que for. Sendo mais directo, pediram-me isto: Escreva uma função que recebe dois argumentos, uma string e um caracter, e que remove todas as ocorrências do caracter da string. Coloque esta função num programa, em que é mostrado o conteúdo da string antes e depois de ser processada. Eu queria fazer -receber string, receber caracter (como é para testar já devem estar declarados) -ler posição da string -comparar com caracter -se igual, escreve noutra string -se diferente, salta para a próxima posição -escrever string, escrever string sem caracter. Já me disseram que para isto terei problemas com a nova variável e que o que deverá ser feito é apagar o caracter na string. Daqui é que já não consigo passar, será que alguém pode ajudar? Não se esqueçam que sou mesmo mas mesmo muito fresquinho nisto da programação. Falta uma coisa, VMware a correr Alinex com o Eclipse instalado. Cumprimentos Pirotas |
|||
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> Cumps, Manuel Rocha 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 |
|||
14-10-2009, 00:25
Mensagem: #3
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Desde já obrigado pela disponibilidade.
1º Deu um erro que para o qual já me tinham alertado, assim que fazemos "Enter" não me possibilita definir qual o caracter a retirar e devolve o seguinte: Introduza a sua string: esta string é de teste Introduza o caracter que quer remover da string: A sua string original era: esta A sua string tratada e: esta julgo que tem a ver com o scanf e o \0 2º Parece-me que o ciclo for é o indicado 3º Agora que vi este código lembrei-me: deve-se trabalhar a string em questão é não criar outra, ou seja deve-se fazer o printf("%s\n",str), trabalhar a str retira_char(str,c), devolvê-la ao main.c e fazer de novo printf. Vou ver se consigo trabalhar a partir daqui Cumprimentos Pirotas |
|||
14-10-2009, 01:15
(Esta mensagem foi modificada pela última vez a: 15-10-2009 10:23 por rei007.)
Mensagem: #4
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Peço imensa desculpa pelo transtorno mas a verdade é que não tinha testado strings com espaços.
A função continua correcta. O problema estava em como eu obtinha os dados no scanf. Aqui tem a versão correcta. Experimente e dê-me o seu feedback. Código: #include <stdio.h> Cumps, Manuel Rocha 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 |
|||
14-10-2009, 10:38
Mensagem: #5
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Não causa transtorno nenhum, ora essa!!!
Deu o seguinte (a bold o que eu introduzi): Introduza a sua string: string de teste Introduza o caracter que quer remover da string: A sua string original era: string de teste A sua string tratada e: string de testee Assim que se faz Enter deixa de se poder introduzir o caracter a eliminar. Será que se pode trabalhar a str em vez de alocar memória e criar outra str, como que fazer um deslocamento para a esquerda do caracter (indice do vector) imediatamente a seguir ao caracter a eliminar? Cumprimentos Pirotas |
|||
14-10-2009, 10:48
(Esta mensagem foi modificada pela última vez a: 15-10-2009 10:21 por rei007.)
Mensagem: #6
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Há aqui qualquer coisa que me está a falhar. Vou sacar o Alinex de propósito e instalar o eclipse só para testar esta situação. Isto devia funcionar porque é compatível com linux. Só se não estás a copiar tudo direitinho como eu te apresento.
(14-10-2009 10:38)Pirotas Escreveu: Será que se pode trabalhar a str em vez de alocar memória e criar outra str, como que fazer um deslocamento para a esquerda do caracter (indice do vector) imediatamente a seguir ao caracter a eliminar? Relativamente ao que tu dizes nós já fazemos isso. Uma grande falha do C é que não temos possibilidade ter mesmo uma string então temos de utilizar char vectoriais com ponteiros para o fazer e alocar em memória. Em c++ já tens strings e não te precisavas de preocupar com nada deste género. Vou instalar e experimentar. Até ao final da manhã acho que ainda te digo algo. Cumps, Manuel Rocha 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 |
|||
14-10-2009, 12:01
(Esta mensagem foi modificada pela última vez a: 14-10-2009 21:54 por Ferreira.)
Mensagem: #7
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Já encontrei solução com o auxílio de um amigo que também tem esta cadeira:
main.c Código: #include<stdio.h> .h Código: #ifndef PRAT2_H_ .c Código: #include "prat2.h" De qualquer das formas, mais uma vez obrigado pela disponibilidade e aproveito para deixar o aviso, voltarei com mais dúvidas.... Cumprimentos Pirotas |
|||
14-10-2009, 12:34
(Esta mensagem foi modificada pela última vez a: 15-10-2009 10:21 por rei007.)
Mensagem: #8
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Fico contente que tenha resolvido.
Cumps, Manuel Rocha 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 |
|||
14-10-2009, 16:31
(Esta mensagem foi modificada pela última vez a: 14-10-2009 21:54 por Ferreira.)
Mensagem: #9
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
Não sei porquê mas o código do ficheiro .c ficou incluído no .h, aliás, nem sei como é que as janelas com scroll surgiram!!! Deixo o resto separado e vem visível para quem padeça do mesmo mal que eu
.c Código: #include "prat2.h" Já agora, o nome que dei aos ficheiros foi: Pasta: prat2 .c: main.c (é óbvio) prat2.c .h: prat2.h Mais uma vez e nunca será demais, os agradecimentos de quem ainda vai precisar de muuuuuita ajuda. Cumprimentos Pirotas |
|||
14-10-2009, 16:47
Mensagem: #10
|
|||
|
|||
RE: Dúvidas de C (Eclipse)
ora uma questão, noob possivelmente, porque é que a função retirar devolve um inteiro? isto porque el simplesmente altera a string a ser tratada?
assim sendo, não ficaria melhor se fosse do tipo void? |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 2 Visitante(s)