Nukus innovatsion instituti

|
Nukus innovatsion instituti
|
bet | 1/3 | Sana | 14.05.2024 | Hajmi | 72,89 Kb. | | #231883 |
Bog'liq С kattaliklar O\'tebaeva N
O’ZBEKISTON RESPUBLIKASI
OLIY TA’LIM, FAN VA INNOVATSIYALAR
VAZIRLIGI
NUKUS INNOVATSION INSTITUTI
IT DASTURIY INJINERING fakulteti sirtqi bo’limi
___________________________________________fanidan
MUSTAQIL ISH
MAVZU: _______________________________________
_______________________________________
Bajargan:_____________________________________________
Qabul qilgan:__________________________________________
Gurux raqami «___»
|
REJA:
Belgili axborot va satrlar.
So’zlar massivlari.
Izlash va tartiblash
C++ da satrli kattaliklar v ular bilan ishlash
Belgili axborot va satrlar
Satrlar. C da belgili ma’lumotlar uchun char turi qabul qilingan. Belgili axborotni taqdim etishda belgilar, simvolli o’zgaruvchilar va matnli konstantalar qabul qilingan.
Misollar:
const char c = 'c';
char a,b;
S dagi satr - bu nul-belgi - \0 (nul-terminator)- bilan tugallanuvchi belgilar massivi. Nul-terminatorning holatiga qarab satrning amaldagi uzunligi aniqlanadi. Bunday massivdagi elementlar soni, satr tasviriga qaraganda, bittaga ko’p.
Simvolli massivlar quyidagicha inisializasiya qilinadi:
char capital[] = "TASHKENT"; Bu holda avtomatik ravishda massiv elementlari soni aniqlanadi va massiv oxiriga satr ko’chirish '\0'simvoli qo’shiladi.
Yuqoridagi inisializasiyani quyidagicha amalga oshirish mumkin:
char capital[] =
{'T','A','S','H','K','E','N','T','\0'};
Bu holda so’z oxirida '\0' simvoli aniq ko’rsatilishi shart.
Qiymat berish operatori yordamida satrga qiymat berish mumkin emas. Satrni massivga yoki kiritish paytida yoki nomlantirish yordamida joylashtirish mumkin.
#include
#include
int main()
{
char s1[10] = "string1";
int k = sizeof(s1);
printf("\n%s %d",s1,k);
char s2[] = "string2";
k = sizeof(s2);
printf("\n%s %d",s2,k);
char s3[] = {'s','t','r','i','n','g','3','\0'};
k = sizeof(s3);
printf("\n%s %d",s3,k);
char *s4 = "string4";//satr ko'rsatkichi, uni o'zgartirib bo'lmaydi
k = sizeof(s4);
printf("\n%s %d",s4,k);
system("pause");
return 0;
}
Natija:
string1 10
string2 8
string3 8
string4 4
Keyingi misolda kiritilgan so’zdan berilgan harfni olib tashlash dasturi berilgan.
#include
int main() {
char s[100];
scanf("%s",&s);
int i, j; for ( i = j = 0;
s[i] ! = '\0'; i++) if ( s[i] ! = 'c' ) s[j++] = s[i];
s[j] = '\0'; print
if("%s",s);
return 0;
}
Xar safar 's' dan farqli simvol uchraganda, u j pozisiyaga yoziladi va faqat shundan so’ng j ning qiymati 1 ga oshadi. Bu quyidagi yozuvga ekvivalent:
if ( s[i] ! = c )
s[j] = s[i];
j++;
Funksiyalar va satrlar. Funksiyalarda satrlar ishlatilganda ularning chegarasini ko’rsatish shart emas. Satrlarning uzunligini hisoblash len funksiyasini quyidagicha ta’riflash mumkin:
#include
int len(char c[])
{ int m = 0;
for(m = 0;c[m]! = ’0’;m++);
return m;
};
Shu funksiyadan foydalanilgan dasturni keltiramiz:
#include
int len(char c[])
{
int m = 0;
while(c[m++]);
return m-1;
};
int main()
{
char e[] = "Pro Tempore!";
printf("\n%d", len(e));
return 0;
}
Bu funksiyaning standart varianti strlen deb ataladi va bu funksiyadan foydalanish uchun string.h sarlavha faylidan foydalanish lozim.
Satrdan nusxa olish funksiyasi strcpy ni C tilida quyidagicha ta’riflash mumkin:
#include
void strlen(char s1[], char s2[])
{
int i = 0;
while(s2[i]! = '\0') s1[i++] = s2[i];
s1[i] = s2[i];
}
int main()
{
char s1[] = "aaa";
char s2[] = "ddd";
strcpy(s1,s2);
printf("%s",s1);
return 0;
}
Natija:
ddd
Berilgan satrni teskariga aylantiruvchi funksiya:
reverse(char s[])
{
int c, i, j;
for(i = 0, j = strlen(s) - 1; i < j; i++, j--)
c = s[i];
s[i] = s[j];
s[j] = c;
}
Keyingi misolimizda T qatorni S qator oxiriga ulovchi STRCAT(S,T) funksiyasini ko’rib chiqamiz:
strcat(char s[], t[])
{
int i, j;
i = j = 0;
while (s[i] ! = '\0') i++;
while((s[i++] = t[j++]) ! = '\0')
}
|
| |