Implemente as seguintes funções retiradas de enunciados de exames.
3.12char *strduplica(char *s)
Recebe uma string e duplica o seu conteúdo.
char str[100] = “Ana”;
strduplica(s) “AnaAna”
Passo 1
Fala aí! Essa aqui vai exigir um pouquinho de raciocínio. Se liga, vamos começar declarando nossas variáveis:
Aqui, definimos len como o tamanho da string menos 1 e i será usado para percorrer pela string. Já já explico o por quê daquele -1.
Passo 2
Beleza, para isso, bora abrir um laço for, da seguinte forma:
Entendeu o que tá acontecendo ali? Olha só, qual o tamanho da string “Ana”? Acertou quem disse 4, lembre-se que sempre temos que deixar um espaço reservado para o caractere delimitador. E é aí que entra aquele -1 que falei lá no começo, olha porque isso é importante aqui, se pegarmos essa string como exemplo, na linha 9, estamos dizendo para nossa função o seguinte:
faça o caractere na posição 3 igual ao caractere na posição 0; → “AnaA”
faça o caractere na posição 4 igual ao caractere na posição 1;→ “AnaAn”
faça o caractere na posição 5 igual ao caractere na posição 2;→ “AnaAna”
faça o caractere na posição 6 igual ao caractere na posição 3;→ “AnaAna\0”
E assim conseguimos nossa string duplicada!