Jump to content

Exercício C


Xavier braga
 Share

Recommended Posts

por onde começar ? ok ...

se é uma função tens de pensar em três pontos:

- quais são os dados de entrada ?

- quais são os dados de saída ?

- que efeitos secundários a função irá ter no sistema ?

para responder a estas duas questões, basta olhar para o problema em mãos.

- quais são os dados de entrada ?

tens duas strings (m1 e m2) e tens de saber quantos bytes irá copiar (n)

- quais são os dados de saída ?

aqui podes escolher devido ao tipo de problema, mas o normal será um valor inteiro representativo do sucesso da operação.

- que efeitos secundários a função irá ter no sistema ?

esta pergunta é algo de especial deste tipo de problema. esta função não é algo que manipula dois valores invariáveis e retorna um terceiro valor. o que terás é uma função que altera os dados de um dos parâmetros de entrada, e isso é para ter em conta.

após este passo (de pensar no que deverás ter) já podes escrever a assinatura da tua função:

int my_func(const char * m1, char * m2, const unsigned int n);

por fim, é implementar o código que resolve o problema.

para isso deixo estas notas:

- as string deverão sempre acabar com o caracter '\0'

- deverás ter em conta se n é um valor coerente/com sentido

- ter cuidado com a possibilidade de sobreposição de memória.

o meu conselho será : implementa como entenderes. depois testa cada um dos pontos que feri em separado

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
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.