C++ Функция за низ: strcpy(), strcat(), strlen(), strcmp() Пример

Какво е низ?

Низът е поредица от знаци. А 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";

Имайте предвид, че не е нужно да поставяте нулевия знак в края на константата на низа. The C++ компилаторът автоматично ще постави '\0' в края на низа при инициализиране на масива.

std::string

Стандарт C++ библиотеката предоставя клас низ, който поддържа различни операции с низове. Записва се като 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;
}

Изход:

Достъп до низови стойности

Ето екранна снимка на кода:

Достъп до низови стойности

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  3. Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
  4. Деклариране на низ от знаци и даване на име name. Низът ще съхранява стойността John. Допълнителното пространство ще съхранява нулевия знак.
  5. Отпечатване на текст на конзолата.
  6. Отпечатване на стойността на низа с име на конзолата.
  7. Функцията main() трябва да върне стойност, ако програмата работи добре.
  8. Край на тялото на функцията main().

Ето още един пример за използване на C++ стандартен низов клас:

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

Изход:

Достъп до низови стойности

Ето екранна снимка на кода:

Достъп до низови стойности

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включване на стандартния клас низове в нашия код.
  3. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  4. Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
  5. Деклариране на низ и даване на име name. Низът ще съхранява стойността Guru99.
  6. Отпечатване на стойността на името на низа заедно с някакъв текст на конзолата.
  7. Функцията main() трябва да върне стойност, ако програмата работи добре.
  8. Край на тялото на функцията main().

Функции за низове в C++

Често ще искате да манипулирате низове. C++ предоставя широк набор от функции, които можете да използвате за това. Тези функции са дефинирани в класа CString, следователно трябва да го включим в нашия код, за да използваме функциите. Нека обсъдим някои:

strcpy()

Това е функцията за копиране на низове. Той копира един низ в друг низ.

Синтаксис:

strcpy(string1, string2);

Двата параметъра на функцията, string1 и string2, са низове. Функцията ще копира низа string2 в string1.

strcat()

Това е функцията за свързване на низове. Той свързва низове.

Синтаксис:

strcat(string1, string2);

Двата параметъра на функцията, string1 и string2, са низовете, които трябва да бъдат свързани. Горната функция ще свърже низа string2 до края на низа string1.

strlen()

Това е функцията за дължина на низа. Връща дължината на низа, подадена му като аргумент.

Синтаксис:

strnlen(string1)

Параметърът string1 е името на низа, чиято дължина трябва да се определи. Горната функция ще върне дължината на низа string1.

strcmp()

Това е функцията за сравняване на низове. Използва се за сравнение на низове.

Синтаксис:

strcmp(string1, string2);

Горната функция ще върне 0, ако низовете string1 и string2 са подобни, по-малко от 0, ако string1 низ2.

Пример:

Следващият пример демонстрира как да използвате горните низови функции:

#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;
}

Изход:

Функции за низове в C++

Ето екранна снимка на кода:

Функции за низове в C++

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включване на стандартния клас CString в нашия код.
  3. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  4. Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
  5. Деклариране на низ от 10 знака и даване на името name1. Низът ще съхранява стойността Guru99.
  6. Деклариране на низ от 10 знака и даване на името name2. Низът ще съхранява стойността John.
  7. Деклариране на низ от 10 знака и даване на името name3.
  8. Деклариране на цяло число променлива на име лен.
  9. Копиране на низа name1 в низа name3.
  10. Отпечатване на стойността на низа name1 заедно с някакъв текст на конзолата. Трябва да отпечата Guru99.
  11. Конкатениране на низовете name2 до края на низа name1. Стойността на name1 сега е Guru99John.
  12. Отпечатване на стойността на низа name1 заедно с някакъв текст на конзолата. Трябва да отпечата Guru99John
  13. Определяне на дължината на низа с име name1 и присвояване на стойността на length на променливата len.
  14. Отпечатване на стойността на променливата len заедно с друг текст на конзолата.
  15. Функцията main() трябва да върне стойност, ако програмата работи добре.
  16. Край на тялото на функцията main().

Oбобщение

  • Низът е поредица от знаци.
  • Низовете принадлежат към стандартния клас низове в C++.
  • Можем да декларираме низове, като използваме символен низ в стил C или стандартен клас низове.
  • Функцията strcpy() копира един низ в друг.
  • Функцията strcat() свързва два низа.
  • Функцията strlen() връща дължината на низ.
  • Функцията strcmp() сравнява два низа.

Обобщете тази публикация с: