Xavier braga Posted April 11, 2014 Report Share Posted April 11, 2014 Boa tarde, Alguém que me ajude a fazer esta função. Não consigo nem sei por onde lhe pegar. É sobre funções de manipulação de strings. Mover n bytes da área m 2 para a área m 1 (esta função deverá funcionar mesmo que m 1 e m 2 partilhem memória. Obrigado. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 11, 2014 Report Share Posted April 11, 2014 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 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now