Java o’zi nima? Oydt java sintaksisi java da tiplar


Download 1.29 Mb.
bet1/2
Sana10.10.2023
Hajmi1.29 Mb.
#1697273
  1   2
Bog'liq
C dasturlash tilida satrli kattaliklar

    Bu sahifa navigatsiya:
  • Misol
  • Mavzu: C++ da satrli kattaliklar va ular bilan ishlash
  • Reja:
  • String turidagi satrlar haqida;
  • Satr qismini boshqa satrga nusxalash funksiyasi;
  • Satr qismini boshqa satrga qo‘shish funksiyasi;
  • Satr qismini boshqa satr ichiga joylashtirish, o‘chirish, almashtirish, ajratib olish va izlash funksiyalari;
  • Xulosa.
  • C++ tilida standart satr turiga qo‘shimcha sifatida string turi kiritilgan va u string sinfi ko‘rinishida amalga oshirilgan. Bu turdagi satr uchun ‘\0’ belgisi tugash belgisi hisoblanmaydi va u oddiygina belgilar massivi sifatida qaraladi. string turida satrlar uzunligining bajarila-digan amallar natijasida dinamik ravishda o‘zgarib turishi, uning tarkibida bir qator funksiyalar aniqlanganligi bu tur bilan ishlashda ma'lum bir qulayliklar yaratadi.
  • string turidagi o‘zgaruvchilar quyidagicha e'lon qilinishi mumkin:
  • string s1,s2,s3;
  • Bu turdagi satrlar uchun maxsus amallar va funksiyalar aniq-langan.
  • string satrga boshlang‘ich qiymatlar har xil usullar orqali berish mumkin:
  • string s1=”birinchi usul”;
  • string s2(”ikkinchi usul”);
  • string s3(s2);
  • string s4=s2;
  • Bir satr qismini boshqa satrga yuklash uchun kuyidagi funksiya-larni ishlatish mumkin, ularni prototipi kuyidagicha:
  • assign(const string &str);
  • assign(const string &str,unsigned int pos, unsigned int n);
  • assign(const char *str, int n);
  • Birinchi funksiya qiymat berish amal bilan ekvivalentdir: string turidagi str satr o‘zgaruvchi yoki satr o‘zgarmasni amalni chaqiruvchi satrga beradi:
  • string s1,s2;
  • s1=”birinchi satr”;
  • s2.assign(s1); // s2=s1 амалга эквивалент
  • Misol:
  • string s1,s2,s3;
  • s1=”0123456789”;
  • s2.assign(s1,4,5); // s2=”45678”
  • s3.assign(s1,2,20); // s3=”23456789”
  • Yana bir misol:
  • char * strold;
  • cin.getline(strold,100);//”0123456789” киритилади
  • string s1,s2;
  • s2.assign(strold,6); // s2=”012345”
  • s3.assign(strold,20); // s3=”0123456789”
  • Satr qismini boshqa satrga qo‘shish funksiyalari quyidagicha:
  • append(const string &str);
  • append(const string & str,unsigned int pos,
  • unsigned int n);
  • append(const char *str, int n);
  • Bu funksiyalarni yuqorida keltirilgan mos assign funksiya-lardan farqi - funksiyani chaqiruvchi satr oxiriga str satrni o‘zini yoki uning qismini qo‘shadi.
  • Misol:
  • char * sc;
  • cin.getline(sc,100); //”0123456789” киритилади
  • string s1,s,s2;
  • s2=sc; s1=”misol”;
  • s=”aaa”; //s2=”0123456789”
  • s2.append(”abcdef”); //s2+=”abcdef” амали
  • //ва s2=”0123456789abcdef”
  • s1.append(s2,4,5); //s1=”misol45678”
  • s.append(ss,5); // s=”aaa012345”
  • Bir satrga ikkinchi satr qismini joylashtirish uchun quyidagi funksiyalar ishlatiladi:
  • insert(unsigned int pos1,const string &str);
  • insert(unsigned int pos1,const string & str,
  • unsigned int pos2,unsigned int n);
  • insert(unsigned int pos1,const char *str, int n);
  • Bu fuksiyalar append kabi ishlaydi, farqi shundaki, str satrini yoki uning qismini funksiyani chaqiruvchi satrning ko‘rsatilgan pos1 o‘rnidan boshlab joylashtiradi. Bunda amal chaqiruvchi satrning pos1 o‘rindan keyin joylashgan belgilar o‘nga suriladi.
  • Misol:
  • char * sc;
  • cin.getline (sc,100); //”0123456789” сатри киритилади
  • unsigned int i=3;
  • string s1,s,s2;
  • s2=sc; s1=”misollar”; s=”xyz”; // s2=”0123456789”
  • s2.insert(i,“abcdef”); // s2=”012abcdef3456789”
  • s1.insert(i-1,s2,4,5); // s1=”mi45678sollar”
  • s.insert(i-2,sc,5); // s=”x01234yz”
  • Satr qismini o‘chirish uchun quyidagi funksiyani ishlatish mumkin:
  • erase(unsigned int pos=0,unsigned int n=npos);
  • Bu funksiya, uni chaqiruvchi satrning pos o‘rnidan boshlab n ta belgini o‘chiradi. Agarda pos ko‘rsatilmasa, satr boshidan boshlab o‘chiriladi. Agar n ko‘rsatilmasa, satrni oxirigacha bo‘lgan belgilar o‘chiriladi:
  • Misol:
  • string s1,s2,s3;
  • s1=”0123456789”;
  • s2=s1;s3=s1;
  • s1.erase(4,5); // s1=”01239”
  • s2.erase(3); // s2=”012”
  • s3.erase(); // s3=””
  • void clear() funksiyasi, uni chaqiruvchi satrni to‘liq tozalaydi.
  • Masalan:
  • s1.clear(); //сатр бўш ҳисобланади (s1=””)
  • Bir satr qismining o‘rniga boshqa satr qismini qo‘yish uchun quyidagi funksiyalardan foydalanish mumkin:
  • replace(unsigned int pos1,unsigned int n1, const string & str);
  • replace(unsigned int pos1,unsigned int n1, const string & str,unsigned int pos2, unsigned int n2);
  • replace(unsigned int pos1,unsigned int n1, const char *str, int n);
  • Bu funksiyalar insert kabi ishlaydi, undan farqli ravishda amal chaqiruvchi satrning ko‘rsatilgan o‘rnidan (pos1) n1 belgilar o‘rniga str satrini yoki uning pos2 o‘rindan boshlangan n2 belgidan iborat qismini qo‘yadi (almashtiradi).
  • Misol:
  • char * sc=”0123456789”;
  • unsigned int i=3,j=2;
  • string s1,s,s2;
  • s2=sc; s1=”misollar”; s=”xyz”; // s2=”0123456789”
  • s2.replace(i,j,“abcdef”); // s2=”012abcdef56789”
  • s1.replace(i-1,j+1,s2,4,5); // s1=”mi45678lar”
  • s.replace(i-2,j+2,sc,5); // s=”x012345”
  • swap(string & str) funksiyasi ikkita satrlarni o‘zaro almashtirish uchun ishlatiladi. Masalan:
  • string s1,s2;
  • s1=”01234”;
  • s2=”98765432”;
  • s1.swap(s2); // s2=”01234” ва s1=”98765432” бўлади.
  • Funksiya prototipi kuyidagicha:
  • string substr(unsigned int pos=0, unsigned int n=npos)const;
  • Bu funksiya, uni chaqiruvchi satrning pos o‘rnidan boshlab n belgini natija sifatida qaytaradi. Agarda pos ko‘rsatilmasa, satr boshidan boshlab ajratib olinadi, agar n ko‘rsatilmasa, satr oxirigacha bo‘lgan belgilar natija sifatida qaytariladi:
  • string s1,s2,s3;
  • s1=”0123456789”;
  • s2=s1; s3=s1;
  • s2=s1.substr(4,5); // s2=”45678”
  • s3=s1.substr(3); // s3=”3456789”
  • // “30123456789” сатр экранга чиқади
  • cout<
  • string turidagi satrni char turiga o‘tkazish uchun
  • const char * c_str()const; funksiyani ishlatish kerak. Bu funksiya char turdagi ‘\0’ belgisi bilan tugaydigan satrga o‘zgarmas ko‘rsatkichni qaytaradi:
  • shar *s1; string s2=”0123456789”;
  • s1=s2.c_str();
  • Xuddi shu maqsadda
  • const char * data()const;
  • funksiyasidan ham foydalanish mumkin. Lekin bu funksiya satr oxiriga ‘\0’ belgisini qo‘shmaydi.

string sinfida satr qismini izlash uchun har xil variantdagi funksiyalar aniqlangan. Quyida ulardan asosiylarining tavsifini keltiramiz.

  • string sinfida satr qismini izlash uchun har xil variantdagi funksiyalar aniqlangan. Quyida ulardan asosiylarining tavsifini keltiramiz.
  • unsigned int find(const string &str,
  • unsigned int pos=0)const;
  • Funksiya, uni chaqirgan satrning ko‘rsatilgan joydan (pos) boshlab str satrni qidiradi va birinchi mos keluvchi satr qismining boshlanish indeksini javob sifatida qaytaradi, aks holda maksimal musbat butun npos sonni qaytaradi (npos=4294967295), agar izlash o‘rni (pos) berilmasa, satr boshidan boshlab izlanadi.
  • unsigned int find(char c.unsigned int pos=0)const;
  • Bu funksiya oldingidan farqi ravishda satrdan s belgisini izlaydi.

unsigned int rfind(const string &str,

  • unsigned int rfind(const string &str,
  • unsigned int pos=npos)const;
  • Funksiya, uni chaqirgan satrning ko‘rsatilgan pos o‘rnigacha str satrning birinchi uchragan joyini indeksini qaytaradi, aks holda npos qiymatini qaytaradi, agar pos ko‘rsatilmasa satr oxirigacha izlaydi.
  • unsigned int rfind(char c.unsigned int pos=npos) const;
  • Bu funksiyaning oldingidan farqi - satrdan s belgisi izlanadi.
    • Satrlar qismlarini solishtirish uchun compare funksiyasi ishlatiladi:
  • int compare(const string &str)const;
  • int compare(unsigned int pos1,unsigned int n1, const string & str)const;
  • int compare(unsigned int pos1,unsigned int n1, const string & str,unsigned int pos2, unsigned int n2)const;

Funksiyaning birinchi shaklida ikkita satrlar to‘la solishtiri-ladi: funksiya manfiy son qaytaradi, agar funksiyani chaqiruvchi satr str satrdan kichik bo‘lsa, 0 qaytaradi agar ular teng bo‘lsa va musbat son qaytaradi, agar funksiya chaqiruvchi satr str satrdan katta bo‘lsa.

  • Funksiyaning birinchi shaklida ikkita satrlar to‘la solishtiri-ladi: funksiya manfiy son qaytaradi, agar funksiyani chaqiruvchi satr str satrdan kichik bo‘lsa, 0 qaytaradi agar ular teng bo‘lsa va musbat son qaytaradi, agar funksiya chaqiruvchi satr str satrdan katta bo‘lsa.
  • Ikkinchi shaklda xuddi birinchidek amallar bajariladi, faqat funksiya chaqiruvchi satrning pos1 o‘rnidan boshlab n1 ta belgili satr osti str satr bilan solishtiriladi.
  • Uchinchi ko‘rinishda funksiya chaqiruvchi satrning pos1 o‘rnidan boshlab n1 ta belgili satr qismi va str satrdan ros2 o‘rnidan boshlab n2 ta belgili satr qismlari o‘zaro solishtiriladi.

Misol:

    • Misol:
  • #include
  • void main()
  • {
  • String s1=”01234567893456ab2csef”, s2=”456”, s3=”ghk”;
  • cout<<“s1=”<
  • cout<<“s2=”<
  • cout<<“s3=”<
  • if(s2.compare(s3)>0)cout<<“s2>s3”<
  • if(s2.compare(s3)==0)cout<<“s2=s3”<
  • if(s2.compare(s3)<0)cout<<“s2
  • if(s1.compare(4,6,s2)>0)cout<<“s1[4-9]>s2”<
  • if(s1.compare(5,2,s2,1,2)==0)
  • cout<<“s1[5-6]=s2[1-2]”<
  • }

Download 1.29 Mb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling