>> DAVID J. Malan: Així que resulta que copiar una cadena no és tan
senzill com copiar un primitiu, com un int o float.
Després de tot, sota la campana d'una cadena és una seqüència de caràcters.
Per tant la còpia d'una cadena, per tant, ha de involucrar copiar tota aquesta seqüència de
personatges.
>> Centrarem la nostra atenció de nou a la última aplicació i arrencar aquest
línia, cadena t és igual a s, que clarament no era suficient.
Anem a substituir amb una línia que sembla, en canvi, com aquest.
Cadena t aconsegueix malloc de longitud de la cadena de S Plus 1 vegades la mida d'un char.
>> Ara hi ha pressupost una mica d'anar en aquesta línia de codi.
En primer lloc, malloc, l'abreviatura de la memòria l'assignació i la
funció fa precisament això.
Donat un nombre enter, es torna a vostè el direcció d'un tros de memòria de
que molts bytes.
Mentrestant, la longitud de la cadena de s més 1 pretén indicar que volem que
tants bytes com s ja ocupa, inclòs el seu terminador nul, el
barra invertida 0 al final d'una cadena.
>> Mentrestant, no me'n recordo necessàriament què tan gran és un char, fins i tot
encara que en la majoria dels sistemes és simplement 1 byte, així que vaig a trucar a mida de char a
esbrinar dinàmicament gran un caràcter individual és.
Un cop multiplicats entre si, que torni la nombre total de bytes que necessito.
>> Però el que si malloc no tornar la memòria que necessitem?
Serà millor que comprovo que de la següent manera.
Si t és igual a null, llavors estic anant primer que s lliures, la memòria retornat per get
cadena, i després em vaig a retorna 1, per indicar l'error.
>> Però si tot està bé, vaig a procedir per utilitzar un bucle de quatre i iterar
de la següent manera.
Per int i obtenir 0, n és igual a la longitud de la cadena de s.
Vaig a fer això sempre i quan i és menys de o igual a n de manera que jo
iterar a través d'e incloent la caràcter de terminació null en si.
>> I en cada iteració, estic incrementarà i.
Mentrestant, dins d'aquest bucle, copiar s de l'i-èsim caràcter en la t i-th
ubicació, només cal fer t suport i Obté s abraçadora i.
>> Ara anem a guardar, compilar i executar aquest nou programa.
Fer còpia de còpia 1 punt slash 1.
I vaig a dir una cosa així com hola en minúscules.
I per sort, aquesta vegada la meva original roman sense canvis.
hola en minúscules.
Però la còpia és, de fet, amb majúscula.