>> DAVID J. MALAN: Então, verifica-se que copiar uma string não é tão
simples quanto copiar um primitivo, como um int ou um float.
Afinal, debaixo do capô uma string é um caracteres de seqüência.
Então, copiando uma string, portanto, tem a envolver copiar toda essa seqüência de
caracteres.
>> Vamos voltar nossa atenção para que última implementação e arrancar esta
linha, corda t é igual a s, o que claramente não era suficiente.
Vamos substituí-lo por uma linha que parece, ao contrário, como esta.
Cordas t recebe malloc de comprimento da corda de s e 1 vezes o tamanho de um caracter.
>> Agora há citação um pouco vai em nessa linha de código.
Primeiro, malloc, abreviação de memória atribuição, e o
função faz exatamente isso.
Dado um número inteiro, ele retorna a você o endereço de um bloco de memória de
que muitos bytes.
Enquanto isso, o comprimento da corda de s mais 1 pretende indicar que queremos como
muitos bytes como s já ocupa, incluindo o seu terminador nulo, o
barra invertida 0 no final de uma string.
>> Enquanto isso, eu não me lembro, necessariamente, quão grande é um char é que, mesmo
embora na maioria dos sistemas é simplesmente uma byte, então eu vou chamar tamanho do char para
descobrir dinamicamente como grande um caráter individual é.
Uma vez multiplicados juntos, eu voltar a número total de bytes que eu preciso.
>> Mas o que se malloc não devolver a memória que precisamos?
É melhor eu verificar para que os seguintes.
Se t é igual a null, então eu vou primeiro para s livres, a memória retornado por get
string, e então eu vou retornar 1, para significar erro.
>> Mas, se está tudo bem, eu vou continuar usar um loop de quatro e iterar
como se segue.
Para int i obter 0, n é igual o comprimento da corda de s.
Eu vou fazer isso, desde que i é inferior ou igual a n, de modo que eu
iteração através e incluindo a caractere de terminação nula em s.
>> E em cada iteração, estou indo para incrementar i.
Enquanto isso, dentro desse loop, copiar s do i-th em caráter de t i-th
localização, basta fazer t suporte i recebe suporte s i.
>> Vamos agora salvar, compilar e executar este novo programa.
Fazer cópia de cópia 1 ponto barra 1.
E eu vou dizer algo como Olá em todas as letras minúsculas.
E, felizmente, desta vez a minha original permanece inalterado.
Olá em todas as letras minúsculas.
Mas a cópia é, de fato, capitalizada.