10-lekciya-1
.pdfcout << "Studentler sanın kiritiń: "; cin >> san; } while((studentler_sanı = atoi(san)) <= 0);
Student =new string[studentler_sanı]; cin.ignore(); for(int i = 0; i < studentler_sanı; i++)
{
cout << i + 1 << "-studenttiń FAÁ: "; cin.getline(Qatar, 50);
Student[i].assign(Qatar);
}
bool almastı = true;
for(int i = 0; i < studentler_sanı - 1 && almastı; i++)
{
almastı = false;
for(int j = i; j < studentler_sanı-1; j++) if(Student[j].compare(Student[j+1]) > 0)
{
almastı = true;
strcpy(Qatar, Student[j].data()); Student[j].assign(Student[j+1]); Student[j+1].assign(Qatar);
}
}
cout << "Alfavit boyınsha tártiplengen dizim:\n"; for(int i = 0; i < studentler_sanı; i++)
cout << Student[i] << endl; delete []student;
free(Qatar); return 0;
}
Programmada studentler dizimi string tipindegi Student dinamikalıq massiv kórinisinde járiyalanǵan hám onıń ólshemi paydalanıwshı tárepinen kiritilgen studentler_sanı menen anıqlanadı. Studentler sanınıń kiritiliwi qadaǵalanadı: klaviaturadan qatar oqıladı hám ol atoi() funkciyası járdeminde sanǵa aylandırıladı. Eger payda bolǵan san nolden úlken san bolmasa, sandı kiritiw processi tákirarlanadı. Studentler sanı anıq bolǵannan keyin hár bir studenttiń familiya, atı hám ákesiniń atı bir qatar sıpatında aǵımnan oqıladı.
Keyin, string tipinde anıqlanǵan compare() funkciyası járdeminde massivtegi qatarlar ózara salıstırıladı hám sáykes orındaǵı belgiler kodlarınıń ósiwi boyınsha «kóbikli saralaw» arqalı tártiplenedi. Programma aqırında payda bolǵan massiv ekranǵa shıǵarıladı, hámde dinamikalıq massivler óshiriledi.
Qatar qásiyetlerin anıqlaw funkciyaları
string klassında qatar uzınlıǵı, onıń boslıǵın yamasa iyelegen yad kólemin anıqlaytuǵın funkciyalar bar:
unsigned int |
size()const; |
//qatar |
ólshemi |
|
unsigned |
int |
length()const; |
//qatar |
elementleri sanı |
unsigned |
int |
max_size()const; //qatardıń maksimal |
||
|
|
|
//uzunlıǵı(4294967295) |
unsigned int capacity()const; //qatar iyelegen yad kólemi
|
eger qatar bos |
bool empty()const; |
//true, bolsa |