Olá pessoal, sou iniciante em programação, e estou com um problema pequeno, mas que não consigo resolver de jeito nenhum: preciso de capturar uma sbstring de tamanho variável e colocá-la num outro vetor, posteriormente imprimindo-a na tela.
// abrindo arquivo onde estao as strings a serem lidas //
fabre = fopen ("teste.fasta", "r+");
do {
fgets (num, 50, fabre);
if (c == '>'){ // linhas que não começam pelo indicador, não tem a string desejada //
// substitui a parte inicial da string com o caracter '&' //
for (i = 0; i < 50; i++){
h = num[i];
num[i] = '&';
if ((h == 'f')){
break;
}
}
// transfere para o vetor 's' a parte final da string //
for (i = 0; i < 50; i++){
if (num[i] != '&'){
s[j] = num[i];
printf ("%c", s[j]);
j++;
if (s[i] == '{TEXTO}'){
break;
}
}
}
[code/]
Não consigo saber onde está errado.
[5] Enviado em 02/02/2012 - 17:37h Re: Captar substring [RESOLVIDO]
O primeiro erro que vejo no seu código está no teste:
if ( c == '>' )
Você não inicializou essa variável e o GCC deve estar lhe mostrando um warning.
Lendo rapidamente, você parece estar fazendo uma coisa completamente diferente do que foi proposto. Provavelmente está tendo erros de falha de segmentação por conta do literal 50, como você mesmo disse, as strings têm tamanho variável, não é possível acessar sempre 50 caracteres.
Corrija esses erros e volte com uma versão mais trabalhada, pense melhor no que cada laço está fazendo, preferivelmente imprimindo cada etapa. ;-)
Boa sorte!
[8] Enviado em 02/02/2012 - 19:22h Re: Captar substring [RESOLVIDO]
Então Júlio, a variável 'c' está inicializada como 'char', bem no início do código.
As strings tem tamanho menor que 50, todas elas.... esqueci de dizer isto no post anterior.
Mesmo assim está dando pau... não estou conseguindo entender.
Então Júlio, eu não entendo bem a sintaxe do 'if'... dei uma olhadinha rápida aqui na internet, mas só encontrei exemplos com números. Como fica a sintaxe para o meu caso, verificando a exsitência de um caracter?!
Vlw!
[12] Enviado em 03/02/2012 - 16:15h Re: Captar substring [RESOLVIDO]
Então Júlio, eu não entendo bem a sintaxe do 'if'... dei uma olhadinha rápida aqui na internet, mas só encontrei exemplos com números. Como fica a sintaxe para o meu caso, verificando a exsitência de um caracter?!
Vlw!
A sintaxe está correta, a lógica é que está errada. Como eu disse antes, comece o programa do zero, pense.