>> DAVID J. Malan: Така се оказва, че копиране на низ не е толкова
просто копиране на примитивни, като едно цяло число или с плаваща запетая.
В края на краищата, под предния капак на низ е поредица символи.
Така копиране на низ, следователно, трябва да се включва копиране на цялата тази поредица от
символа.
>> Нека насочим вниманието си обратно към които последно изпълнение и откъснете тази
линия, низ тон е равен ите, които явно не е било достатъчно.
Нека да го замени с линия, която изглежда, вместо това, по този начин.
String тона получава изчистване на низ дължина S плюс 1 пъти размера на знак.
>> Сега вече има цитат малко ще на в този ред на код.
Първо, изчистване, кратко за памет разпределение, и
функция прави точно това.
Предвид цяло число, той се връща към вас адрес на парче от паметта на
че много байта.
Междувременно, дължината на низ и плюс 1 има за цел да покаже, че ние искаме като
много байта, както и вече заема, включително нейната нищожна терминатор, на
наклонена черта 0 в края на низ.
>> В същото време, не е задължително да си спомня колко голям е Чар, дори
макар и в повечето системи това е просто един байт, така че аз ще се обадя размер на Чар, за да
разбера динамично колко голям индивидуален характер.
След като умножава заедно, аз се връщам на Общият брой байтове, които ми трябват.
>> Но какво, ако не успее да изчистване върне паметта ни трябва?
Най-добре провери за това по следния начин.
Ако т равнява нула, тогава аз съм първи ще до безплатни ите, споменът се връща от GET
низ, а след това аз ще върнете 1, за да покаже грешка.
>> Но ако всичко е добре, аз отивам да се процедира да се използва четири контур и обхождане
както следва.
За Int аз добивам 0, п равни дължината на низ ите.
Отивам да се направи това толкова дълго, както аз е по-малко от или равно на п така че
превъртите нагоре през и включително нищожна прекратяване характер в с..
>> И на всяка итерация, аз съм Ще увеличите аз.
В същото време, вътре в този цикъл, копирате на S-тото характер в тона на I-ия
място, достатъчно е да се направи тона скоба аз получава и скоба аз.
>> Нека сега спаси, съставяне и стартирате тази нова програма.
Направете копие 1 точка наклонена черта копие 1.
И аз ще кажа нещо подобно Здравейте във всички малки букви.
И слава Богу, този път ми оригиналната остава непроменен.
Здравейте във всички малки букви.
Но копието е, наистина, капитализирана.