C++ Функция за низове: strcpy(), strcat(), strlen(), strcmp()
⚡ Умно обобщение
C++ Функции за низове като strcpy, strcat, strlen и strcmp позволяват на програмите да копират, съединяват, измерват и сравняват текст. Този ресурс обяснява какво е низ, как да се декларират низове в C-стил и std::string, как да се осъществява достъп до техните стойности и да се прилагат основни функции за низове с примери.

Какво е низ?
Низът е поредица от знаци. А C++ string е обект на класа std::string. Символите се съхраняват като поредици от байтове, като е разрешен достъп до единичен байт символ.
C++ Низовете разпределят памет динамично. Повече памет може да бъде разпределена на низа по време на изпълнение, ако е необходимо. Тъй като няма предварително разпределение на паметта, няма загуба на памет. Можем да извършваме различни операции с низове, включително сравнение, конкатенация, преобразуване и др.
Деклариране на низове
C++ поддържа два типа декларации на низове:
- Символен низ в стил C
- Тип клас низ
Символен низ в стил C
Този тип декларация на низове беше въведен в C език за програмиране. C++ продължава да го поддържа. Това е просто едномерен масив от символи, завършващ с нулев символ (\0). Низ, завършващ с нула, съдържа символите, които съставят низа, последвани от нула.
Разгледайте декларацията на низ, дадена по-долу:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Горната декларация създава низ, който образува думата John. Думата има 4 символа, но низът е с дължина 5. Допълнителното пространство позволява съхраняването на нулевия символ.
Използвайки правилото за инициализация на масива, можем да напишем горния израз, както следва:
char name[] = "John";
Обърнете внимание, че не е необходимо да поставяте нулевия символ в края на низовата константа. C++ компилаторът автоматично ще постави '\0' в края на низа при инициализиране на масива.
std::string
Стандарт C++ Библиотеката предоставя класа string, който поддържа различни операции с низове. Той е написан като std::string.
За да използваме този клас, първо трябва да го включим в работното си пространство, използвайки препроцесора #include, както е показано по-долу:
#include <string>
След това можем да декларираме нашия низ, използвайки ключовата дума string. Например:
string name = "John";
Горният израз ще създаде низ с име name, който да съдържа стойността John.
Достъп до низови стойности
In C++, можем да получим достъп до стойностите на низа, използвайки името на низа. Например:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
Изход:
Ето екранна снимка на кода:
Code Обяснение:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на низ от знаци и даване на име name. Низът ще съхранява стойността John. Допълнителното пространство ще съхранява нулевия знак.
- Отпечатване на текст на конзолата.
- Отпечатване на стойността на низа с име на конзолата.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Ето още един пример за използване на C++ стандартен низов клас:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Изход:
Ето екранна снимка на кода:
Code Обяснение:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включване на стандартния клас низове в нашия код.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на низ и даване на името му name. Низът ще съхранява стойността Guru99.
- Отпечатване на стойността на името на низа заедно с някакъв текст на конзолата.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Функции за низове в C++
Често ще искате да манипулирате низове. C++ предоставя широк набор от функции, които можете да използвате за това. Тези функции са дефинирани в заглавката, така че трябва да я включим в кода си, за да използваме функциите. Нека обсъдим някои от тях:
strcpy()
Това е функцията за копиране на низове. Той копира един низ в друг низ.
Синтаксис:
strcpy(string1, string2);
Двата параметъра на функцията, string1 и string2, са низове. Функцията ще копира низа string2 в string1.
strcat()
Това е функцията за свързване на низове. Той свързва низове.
Синтаксис:
strcat(string1, string2);
Двата параметъра на функцията, string1 и string2, са низовете, които ще бъдат конкатенирани. Горната функция ще конкатенира низа string2 до края на низа string1.
strlen()
Това е функцията за дължина на низа. Връща дължината на низа, подадена му като аргумент.
Синтаксис:
strlen(string1);
Параметърът string1 е името на низа, чиято дължина трябва да се определи. Горната функция ще върне дължината на низа string1.
strcmp()
Това е функцията за сравняване на низове. Използва се за сравнение на низове.
Синтаксис:
strcmp(string1, string2);
Горната функция ще върне 0, ако низовете string1 и string2 са подобни, по-малко от 0, ако string1 < string2, и по-голямо от 0, ако string1 > string2.
Пример:
Следващият пример демонстрира как да използвате горните низови функции:
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
Изход:
Ето екранна снимка на кода:
Code Обяснение:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включително стандарта заглавката в нашия код.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на низ от 10 символа и даване на името му name1. Низът ще съхранява стойността Guru99.
- Деклариране на низ от 10 знака и даване на името name2. Низът ще съхранява стойността John.
- Деклариране на низ от 10 знака и даване на името name3.
- Деклариране на цяло число променлива на име лен.
- Копиране на низа name1 в низа name3.
- Отпечатване на стойността на низа name3 заедно с текст в конзолата. Трябва да се отпечата Guru99.
- Свързване на низа име2 с края на низ име1. Стойността на име1 вече е Guru99Джон.
- Отпечатване на стойността на низа name1 заедно с текст в конзолата. Трябва да се отпечата Guru99Джон.
- Определяне на дължината на низа с име name1 и присвояване на стойността на дължината на променливата len.
- Изписване на стойността на променливата len заедно с друг текст на конзолата.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().




