Ôóíêöèè êëañña string äëя óäîáñòâa ðaññìîòðåíèя ìîæíî ðaçáèòü ía íåñêîëüêî êaòåãîðèé: ïðèñâaèâaíèå è äîáaâëåíèå ÷añòåé ñòðîê, ïðåîáðaçîâaíèя ñòðîê, ïî- èñê ïîäñòðîê, ñðaâíåíèå è ïîëó÷åíèå õaðaêòåðèñòèê ñòðîê.
Присваивание и добавление частей строк
Äëя ïðèñâaèâaíèя ÷añòè îäíîé ñòðîêè äðóãîé ñëóæèò ôóíêöèя assign: assign(COnst string& str);
assign(COnst string& str, size_type pOs, size_type n);
assign(COnst Char* s, size_type n);
Ïåðâaя ôîðìa ôóíêöèè ïðèñâaèâaåò ñòðîêó str âûçûâaþùåé ñòðîêå, ïðè ýòîì äåéñòâèå ôóíêöèè ýêâèâaëåíòíî îïåðaöèè ïðèñâaèâaíèя:
string s1("Âañя"), s2;
s2.assign(s1); // Ðaâíîñèëüíî s2 = s1;
Âòîðaя ôîðìa ïðèñâaèâaåò âûçûâaþùåé ñòðîêå ÷añòü ñòðîêè str, ía÷èíaя ñ ïîçè- öèè pOs1. Åñëè pOs áîëüøå äëèíû ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå Out_Of_range. Âûçûâaþùåé ñòðîêå ïðèñâaèâaåòñя n ñèìâîëîâ, ëèáî, åñëè pOs + n áîëüøå, ÷åì äëèía ñòðîêè str, âñå ñèìâîëû äî êîíöa ñòðîêè str.
Òðåòüя ôîðìa ïðèñâaèâaåò âûçûâaþùåé ñòðîêå n ñèìâîëîâ ñòðîêè s ñòaðîãî òèïa.
Äëя äîáaâëåíèя ÷añòè îäíîé ñòðîêè ê äðóãîé ñëóæèò ôóíêöèя append: append(COnst string& str);
append(COnst string& str, size_type pOs, size_type n);
append(COnst Char* s, size_type n);
Ïåðâaя ôîðìa ôóíêöèè äîáaâëяåò ñòðîêó str ê êîíöó âûçûâaþùåé ñòðîêè, ïðè ýòîì äåéñòâèå ôóíêöèè ýêâèâaëåíòíî îïåðaöèè êîíêaòåíaöèè (+).
Âòîðaя ôîðìa äîáaâëяåò ê âûçûâaþùåé ñòðîêå ÷añòü ñòðîêè str, ía÷èíaя ñ ïîçè- öèè pOs. Åñëè pOs áîëüøå äëèíû ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå Out_Of_range. Ê âûçûâaþùåé ñòðîêå äîáaâëяåòñя n ñèìâîëîâ, ëèáî, åñëè pOs + n áîëüøå, ÷åì äëèía ñòðîêè str, âñå ñèìâîëû äî êîíöa ñòðîêè str. Åñëè äëèía ðåçóëüòaòa áîëü- øå ìaêñèìaëüíî äîïóñòèìîé äëèíû ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå length_errOr.
Òðåòüя ôîðìa äîáaâëяåò ê âûçûâaþùåé ñòðîêå n ñèìâîëîâ ñòðîêè s ñòaðîãî òèïa.
Преобразования строк
Äëя âñòaânè â îäíó ñòðîêó ÷añòè äðóãîé ñòðîêè ñëóæèò ôóíêöèя insert: insert(size_type pOs1, COnst string& str);
insert(size_type pOs1, COnst string& str, size_type pOs2, size_type n);
insert(size_type pOs, COnst Char* s, size_type n);
Ïåðâaя ôîðìa ôóíêöèè âñòaâëяåò ñòðîêó str â âûçûâaþùóþ ñòðîêó, ía÷èíaя ñ ïîçèöèè pOs1 âûçûâaþùåé ñòðîêè. Èíûìè ñëîâaìè, âûçûâaþùaя ñòðîêa çaìåùa- åòñя ñòðîêîé, êîòîðaя ñîñòîèò èç ïåðâûõ pOs1 ñèìâîëîâ âûçûâaþùåé ñòðîêè, ça êîòîðûìè ñëåäóåò ñòðîêa str öåëèêîì, a ïîñëå íåå ðañïîëaãaþòñя îñòaëüíûå ñèì- âîëû âûçûâaþùåé ñòðîêè. Åñëè pOs1 áîëüøå äëèíû ñòðîêè, ïîðîæäaåòñя èñêëþ-
÷åíèå Out_Of_range. Åñëè äëèía ðåçóëüòaòa áîëüøå ìaêñèìaëüíî äîïóñòèìîé äëè- íû ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå length_errOr.
Âòîðaя ôîðìa ôóíêöèè âñòaâëяåò â âûçûâaþùóþ ñòðîêó ÷añòü ñòðîêè str, ía÷è- íaя ñ ïîçèöèè pOs1 âûçûâaþùåé ñòðîêè. Âûçûâaþùaя ñòðîêa çaìåùaåòñя ñòðî- êîé, êîòîðaя ñîñòîèò èç ïåðâûõ pOs1 ñèìâîëîâ âûçûâaþùåé ñòðîêè, ça êîòîðûìè ñëåäóþò n ýëåìåíòîâ ñòðîêè str, ía÷èíaя ñ ïîçèöèè pOs2, a ïîñëå íèõ ðañïîëaãa- þòñя îñòaëüíûå ñèìâîëû âûçûâaþùåé ñòðîêè. Åñëè n áîëüøå äëèíû ñòðîêè str, êîïèðóåòñя âåñü îñòaòîê ñòðîêè str. Åñëè pOs1 èëè pOs2 áîëüøå äëèíû ñîîòâåòñò- âóþùåé ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå Out_Of_range. Åñëè äëèía ðåçóëüòaòa
1 size_type ïðåäñòaâëяåò ñîáîé áåççíaêîâûé öåëûé òèï, äîñòaòî÷íûé äëя õðaíåíèя ðaçìåða ñaìîãî áîëüøîãî îáúåêòa äëя äaííîé ìîäåëè.
áîëüøå ìaêñèìaëüíî äîïóñòèìîé äëèíû ñòðîêè, ïîðîæäaåòñя èñêëþ÷åíèå
length_errOr.
Òðåòüя ôîðìa ôóíêöèè âñòaâëяåò â âûçûâaþùóþ ñòðîêó n ýëåìåíòîâ ñòðîêè s
ñòaðîãî òèïa, ía÷èíaя ñ ïîçèöèè pOs âûçûâaþùåé ñòðîêè. Äëя óäaëåíèя ÷añòè ñòðîêè ñëóæèò ôóíêöèя erase:
erase(size_type pOs = 0, size_type n = npOs);
Îía óäaëяåò èç âûçûâaþùåé ñòðîêè n ýëåìåíòîâ, ía÷èíaя ñ ïîçèöèè pOs. Åñëè pOs íå óêaçaíî, ýëåìåíòû óäaëяþòñя ñ ía÷aëa ñòðîêè. Åñëè íå óêaçaíî n, óäaëяåòñя âåñü îñòaòîê ñòðîêè.
Do'stlaringiz bilan baham: |