Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Копирование строк

Объединение строк

Функция strcat() предназначена для добавления одной строки к другой. Прототип функции имеет следующую структуру: char* strcat(char *s1, char *s2);

где параметры s1 и s2 являются указателями на первую и вторую строки.

Функция добавляет в конец первой строки, расположенной по адресу s1, копию второй строки, расположенной по адресу s2. При этом первый символ второй строки помещается вместо символа окончания первой строки (‘\0’). Вторая строка не меняется.

Функция возвращает указатель на суммирующую строку.

Например, фрагмент программы

char str1[20] = “Персональная ”;

char str2[6] = “ЭВМ”;

strcat(str1, str2);

puts(str1);

Как правило, в процессе обработки строк в соответствующие функции передаются не сами строки, а их адреса, т. к. копирование одного адреса более эффективно, чем копирование всей строки.

Например, фрагмент программы

char *st = “Компьютер”,

*st1;

st1 = st;

puts(st1);

показывает, как с использованием указателя st1, вывести исходную строку, на которую указывает st. При этом копируется не сама строка, а её адрес. Схема распределения оперативной памяти имеет вид

&                    
                       
  К о м п ь ю т е р \0  

 

             
             
  &       &  
  st       st1  

Адрес строки (обозначенный на схеме как &) при инициализации строки записывается в ячейку указателя st. Оператор st1 = st; копирует значение этого адреса в ячейку указателя st1.

Однако, в случае, когда требуется сохранить копию строки и изменить оригинал, такой способ не подходит, т. к. указатели st и st1 указывают на одну и ту же строку.

Для создания копии строки необходимо использовать функцию strcpy().

Функция strcpy() копирует одну строку в другую. Прототип функциии имеет следующую структуру:

char *strcpy(char *s1, char *s2);

где в качестве двух аргументов используются указатели s1, s2 на символьные строки.

Строка, на которую указывает указатель s2 (второй аргумент), посимвольно копируется в символьный массив, на который указывает указатель s1 (первый аргумент). В качестве второго аргумента может использоваться указатель на копируемую строку (адрес символьного массива, содержащего строку) или строковая константа.

Функция возвращает указатель на скопированную строку.

<== предыдущая лекция | следующая лекция ==>
Определение длины строки | Сравнение строк
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 257; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.