https://www.geeksforgeeks.org/stdstring-class-in-c/?ref=lbp
https://pdf.co/blog/c-strings-with-examples
https://mendo.mk/Lecture.do?id=19
Текстуални податоци (string)
Стандардната библиотека на шаблони нуди посебен контејнер (string) за работа со текстуални податоци. C ++ има во својата дефиниција начин да ја претстави низата карактери како објект на класа. Оваа класа се нарекува std :: string.
String дава еден вид проширување на операциите кои се нудат од страна на vector<char>. Како таков контејнер, string ги нуди повеќето методи кои ги нуди и контејнерот вектор - size, empty, push_back, begin, end, resize, clear, insert и erase. Дополнително, string (како и вектор) овозможува пристапување до елемент на произволна позиција - преку операторот '[p]' (во овој случај, тоа се знаците во текстот). За разлика од vector<char>, string користи посебен механизам за управување со меморија, и нуди неколку методи за манипулирање со текстуални податоци.
Спојување на два string-a.
- со помош на операторот '+'
имено, два string-a str1 и str2 може да ги споиме во нов string со нивно едноставно "собирање" - str1+str2, или, доколку е тоа потребно, str1+=str2.
- со методот append(vtor)
prv.append(vtor) ќе ги спои string-овите prv и vtor и ќе го смести резултатот во променливата prv.
Контејнерот string нуди метод substr преку кој може да вратиме одреден дел од почетниот string. Доколку го повикаме методот преку наведување на само еден аргумент од тип int, на пример str.substr(x), тој ќе врати дел од оригиналниот string str кој почнува од позицијата x и завршува со завршување на string-от str.
Доколку наведеме два аргумента од тип int, на пример str.substring(x, len), операцијата ќе врати дел од оригиналниот string str кој почнува од позиција x и има големина најмногу len (доколку од x до крајот на оригиналниот string има помалку од len знаци, се враќаат само онолку знаци колку што има до крајот на string-от).Контејнерот string може едноставно да се претвори (доколку има потреба од тоа) во стандардна текстуална низа (C тип на текстуален податок - char*) со повикување на методот c_str(). На пример, следниве две линии претвораат string во низа од char знаци:
За користење на string, потребно е вклучување на соодветната датотека која ја содржи неговата дефиниција (#include <string>).
Функции за работи со стринг дефинирани во датотеката <string>
· споредување на стрингови – sting1.compare(sting2);
· должина на стринг – string1.length();
1 2 | char * cstr = new char [str.size()+1]; strcpy (cstr, str.c_str()); |
Функции за работи со стринг дефинирани во датотеката <string>
· споредување на стрингови – sting1.compare(sting2);
вpaќa 0 ako стринговите ce eдникви, a aко нe ce 1
· спојување на стрингови – string1.append(string2) или со знак „+“;
· издвојување на подстринг– string1.substr(poz,br_karakteri);
· заменување на стрингови – string1.swap(string2);
· нaoѓaњe нa подстринг – string1.find(string2) и string1.rfind(string2) ;
· замена на карактер во стринг – string1.replace(poz,br_karakteri, string2);
· вметнување на еден стринг во друг – string1.insert(poz,string2); · спојување на стрингови – string1.append(string2) или со знак „+“;
· издвојување на подстринг– string1.substr(poz,br_karakteri);
· заменување на стрингови – string1.swap(string2);
· нaoѓaњe нa подстринг – string1.find(string2) и string1.rfind(string2) ;
· замена на карактер во стринг – string1.replace(poz,br_karakteri, string2);
· должина на стринг – string1.length();
Програма со која се внесуваат два стринга и се претвараат во стандардна текстуална низа
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
string str, str1;
int k,i,k1;
getline(cin,str);
getline(cin,str1);
k=str.size();
k1=str1.size();
cout<<"Dol na prvata niza e"<<k<<endl;
cout<<"dol na vtorata niza e "<<k1<<endl;
char s[k],s1[k1];
strcpy (s,str.c_str());
strcpy (s1,str1.c_str());
cout<<"Nizite znaci se"<<endl;
for(i=0;i<k;i++)
cout<<s[i];
cout<<endl;
for(i=0;i<k1;i++)
cout<<s1[i];
cout<<endl;
return 0;
}
Функции за конверзија стринг во број
No comments:
Post a Comment