9. Символни низове Символният низ представлява последователност от символи, заградени в двойни кавички, например: " Това е низ". Броят на символите в низа се нарича дължина на низа. Низът може да бъде и с нулева дължина, напр “”, т.е. празен низ. • Дефиниране на символен низ В езика С/С++ символните низове се разглеждат като едномерни масиви с елементи от тип char: char aa променлива_низ[брой_на_елементите]; Пример: char firstName[20], familyName[20]; За означаване края на низа се използва знак '\0', чийто код ASCII е 0. В общия случай, броят на елементите на масива трябва да бъде поне с 1 по-голям от броя на символите, които ще се съхраняват в него, за да има един свободен елемент за автоматично добавяне на нулевия символ накрая на низа. • Въвеждане и извеждане на символни низове За разлика от масивите от елементи от други числови типове, низовете могат да се въвеждат и извеждат с една инструкция:
Тъй като са масиви от символи, низовете могат да се въвеждат и извеждат и поелементно. В следващия фрагмент се въвеждат и извеждат точно 20 символа:
• Функции за работа с низове В езика C/C++ има много функции, реализиращи различни операции с низове. Голяма част от тях са дефинирани във файла string.h. - функция strlen: strlen(произволен_низ) Връща броя на символите в низа. Пример. Да се намери дължината на низа name:
- функция strcat: strcat(низова_променлива, низ ) Добавя низ към края на низовата променлива. Пример: Да се намери пълното име name при зададени малко име firstName и фамилия familyName:
- функция strcmp: strcmp(низ1, низ2) Сравняват се съответните символи от низ1 и низ2 на базата на техните кодове ASCII. Ако низ1 е по-голям от низ2, резултатът е цяло положително число. Ако двата низа са равни, резултатът е нула. Ако низ2 е по-голям от низ1, резултатът от сравнението е отрицателно число. Пример: cout<< strcmp("Ann", "Anetа”)<< endl; // извежда цяло положително число - функция strcpy: strcpy(низова_променлива, низ) Функцията strcpy копира низ в низова_променлива. Ако низът е по-дълъг от низовата променлива са възможни труднооткриваеми грешки. Резултатът от копирането се връща от функцията, а също се съдържа и в низова_променлива. Пример. Следващият код извежда низа "Ivan", който е копиран от firstName в променливата name:
|