Потребителски панел
Запомни
Категории
C/C++ (17)
C# (8)
Java (5)
Visual Basic (18)
Delphi/Pascal (11)
Python (4)
Assembly (0)
Други (0)
Facebook
Низове | Автор: admin | Дата: 29.04.2011


Както може би вече знаете стандартната C++ библиотека предлага класа string, който спомага за лесното обработване и манипулиране на низове от символи. Въпреки това, тъй като стринговете представляват последователност от символи, можем да ги представим като масив от тип char.

Например масивът:
char jenny [20];

е масив, който може да съхранява до 20 елемента от тип char. Може да се представи така:



Не е задължително да запълваме целия масив със символи, единственото което трябва да се внимава е да не превишаваме 20 символа (в случая). Например можем да съхраняваме както думата "Hello", така и "Merry Christmas" (тъй като и двете не превишават лимита от 20 знака). Нагледно това изглежда така:



Обърнете внимание как след валидното съдържание е добавен знака '\0' с който се индикира края на редицата.

Декларирането на масиви от тип char може да стане по 2 начина:
char myword [] = { 'H', 'e', 'l', 'l', 'o', '\0' };
char myword [] = "Hello";

Първият начин е валиден за масиви от всякакъв тип (int, double и т.н.) като задължително последният знак трябва да бъде '\0' за край на редицата. По втория начин знака за край се добавя автоматично.

И в двата случая масива myword е деклариран с дължина 6 елемента, 5 символа за думата "Hello" и 1 за последния знак. Обърнете внимание, че говорим за инициализиране на масив от знаци в момента на неговото деклариране, а не за присвояване на стойности, след неговото деклариране. Не трябва да забравяме, че това са преди всичко масиви и сме зависими от техните ограничения.

Ако приемем че mystext e променлива тип char[], изрази като тези:
mystext = "Hello";
mystext[] = "Hello";

са невалидни, както и:
mystext = { 'H', 'e', 'l', 'l', 'o', '\0' };

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

Ето и една примерна програма за приложение на низовете:
#include <iostream>
using namespace std;

int main ()
{
char question[] = "Please, enter your first name: ";
char greeting[] = "Hello, ";
char yourname [80];
cout << question;
cin >> yourname;
cout << greeting << yourname << "!";
return 0;
}


Низовете лесно могат да бъдат конвертирани в стрингове:
string mystring;
char myntcs[]="some text";
mystring = myntcs;

Урока е подготвен специално за Programming-BG.com. Моля не копирайте без мое съгласие!
Източник: www.cplusplus.com


           


Беше ли Ви от полза урокът?
да не




Искате да пишете коментари? Влезте от тук или се регистрирайте!



Все още няма коментари за този урок.