Jump to content

Duvida função simples


ville
 Share

Recommended Posts

preciso de algo do genero;

strcpy(cadeia,"ABCDEF");
cadeia2=retirabase(cadeia,num);
printf("%s",cadeia2);

e cadeia2 seria supostamente BCDEF

dps a cadeia3 seria supostamente CDEF, ou seja, uma funçao que retorna a string recebida sem os n primeiros caracteres

aqui esta a minha tentativa desesperada

char retirabase (char *seq,int num){
char aux[1000];
int i;
  for(i=0+num;i<=strlen(seq);i++)
    aux[i-num]=seq[i];
  return *(aux);

}

ainda n consegui perceber pq e que n funciona...mais alguma sugestao?

Link to comment
Share on other sites

1º, tens que perder a mania de dar o código de bandeja. É uma maneira fácil de "ajudar", mas não é ajuda nenhuma. Lê as regras do fórum e vê o que está lá escrito sobre quem pede para fazerem trabalhos. O que nem foi o caso, o que só torna o que fizeste ainda pior.

2º, isso não serve para o que ele quer porque altera a string original, impedindo de a reutilizar em chamadas subsequentes.

Desaparecido.

Link to comment
Share on other sites

1º, tens que perder a mania de dar o código de bandeja. É uma maneira fácil de "ajudar", mas não é ajuda nenhuma. Lê as regras do fórum e vê o que está lá escrito sobre quem pede para fazerem trabalhos. O que nem foi o caso, o que só torna o que fizeste ainda pior.

2º, isso não serve para o que ele quer porque altera a string original, impedindo de a reutilizar em chamadas subsequentes.

1º - Desculpa la mas eu até acho que é bastante didático ver a função já resolvida, nem que seja de outra forma, para ver outras maneiras de programar e pensar.

2º eu postei a minha funçao, o que prova que estou a tentar, não me tomes por igual aos que chegam aqui sem nada e pedem que lhes façam tudo, coisa que alías, não fiz.

voltando ao assunto, sim, realmente não é bem isso que quero, mas obrigado na mesma.

Link to comment
Share on other sites

#include<stdio.h>
#include<string.h>
char retirabase (char *seq,char *seqb,int num){
int j;
int t = strlen(seq);
for (j=num;j<=t;j++)
	seqb[j-num]=seq[j];
return seqb;
}
int main(void)  
{
  char cadeia[1000];
  char cadeia2[1000];
  int num;
  num=2;
  printf("%s\n",cadeia);
  retirabase(cadeia,cadeia2,num);
  printf("%s\n",cadeia2);
return 0;
}

isto dá-me o mesmo erro que quando postei. Sinto que estou perto 😛

cenas.c: In function ‘retirabase’:

cenas.c:8: warning: return makes integer from pointer without a cast

Link to comment
Share on other sites

Quando fazes return seqb, estás a devolver um apontador para a string seqb. No entanto no cabeçalho da função disseste que o tipo de retorno era char. Ora char != apontador para char (char *). Logo o que tens de fazer é mudar o char para char *

Link to comment
Share on other sites

Repara no tipo de retorno da tua função (char) e na que o Baderous deu (char *). (O Baderous foi mais rápido 😛 )

E só meti o código porque já tinha reparado que a parte do algoritmo, ele já tinha feito bem.

Mas podias ter explicado as diferenças ente o teu código e o dele. Simples copy-paste é que não o ajuda muito.

Desaparecido.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.