4.1. Belgilar (Chars)
Shu paytgacha biz ko'rib chiqqan asosiy ma'lumotlar turlari raqamlarni (butun sonlar va suzuvchi nuqta) yoki haqiqiy/noto'g'ri qiymatlarni (booleanlar) ushlab turish uchun ishlatilgan. Ammo, agar biz harflarni saqlamoqchi bo'lsak?
Char ma'lumotlarining turi belgini ushlab turish uchun mo'ljallangan. Belgilar bitta harf, raqam, belgi yoki bo'sh joy bo'lishi mumkin.
Char ma'lumotlarining turi ajralmas tipdir, ya'ni asosiy qiymat butun son sifatida saqlanadi. Mantiqiy 0 qiymati noto'g'ri va nol bo'lmagan haqiqiy deb talqin qilinganidek, char o'zgaruvchisi saqlagan butun son ASCII belgisi sifatida tushuniladi.
ASCII ma'lumot almashish uchun Amerika standart kodini anglatadi va u inglizcha belgilarni (bir nechta boshqa belgilarni) 0 dan 127 gacha bo'lgan raqamlar (ASCII kodi yoki kod nuqtasi deb ataladi) bilan ifodalashning o'ziga xos usulini belgilaydi. Masalan, ASCII kodi 97 "a" belgisi sifatida talqin qilinadi.
Belgilar har doim bitta tirnoq orasiga joylashtiriladi (masalan, 'g', '1', '').
ASCII jadvali
0-31 kodlari chop etilmaydigan belgilar deb ataladi va ular asosan printerlarni formatlash va boshqarish uchun ishlatiladi. Ularning aksariyati hozir eskirgan.
32-127 kodlari bosma belgilar deb ataladi va ular ko'pchilik kompyuterlar ingliz tilidagi asosiy matnni ko'rsatish uchun foydalanadigan harflar, raqamli belgilar va tinish belgilarini ifodalaydi.
Belgilarni boshlang'ich qiymatini berish
Char o'zgaruvchilarini belgi harflari yordamida boshlashingiz mumkin:
Siz belgilarni butun sonlar bilan boshlashingiz mumkin, lekin iloji bo'lsa, bunga yo'l qo'ymaslik kerak
Belgilar sonini butun sonlar bilan aralashtirib yubormaslik uchun ehtiyot bo'ling. Quyidagi ikkita boshlanish bir xil emas:
char ch {5}; // tamsayı 5 bilan boshlang (butun son sifatida saqlanadi).
char ch {'5'}; // "5" uchun kod nuqtasi bilan boshlang (butun son sifatida saqlanadi)
Belgilar raqamlari biz raqamlarni matematik operatsiyalarni qo'llash uchun emas, balki matn sifatida ko'rsatishni xohlaganimizda foydalanish uchun mo'ljallangan.
Choralarni bosib chiqarish
Charni chop etish uchun std :: cout dan foydalanilganda, std :: cout char o'zgaruvchisini ASCII belgisi sifatida chiqaradi:
Natija:
Shuningdek, biz char harflarini to'g'ridan - to'g'ri chiqarishimiz mumkin:
Bu natijani beradi:
Belgilangan kenglikdagi int8_t odatda C ++ da imzolangan belgi bilan bir xil bo'ladi, shuning uchun u odatda tamsayı o'rniga char sifatida chop etiladi.
Belgilarni sonlar sifatida chop etish
Agar biz belgini belgi o'rniga raqam sifatida chiqarishni istasak, std :: coutga charni butun son kabi chop etishini aytishimiz kerak. Buning bitta (yomon) usuli - charni butun songa belgilash va butun sonni chop etish:
Eng yaxshi usul - bu type cast. Turi boshqa turdagi qiymatdan bitta turdagi qiymat hosil qiladi. Ma'lumotlarning asosiy turlarini (masalan, char dan int ga yoki aksincha) aylantirish uchun biz statik translyatsiya deb nomlangan turdan foydalanamiz.
Asosiy tushuncha Qachonki siz burchakli qavslardan foydalanadigan C ++ sintaksisini (oldingi protsessordan tashqari) ko'rsangiz, burchakli qavslar orasidagi narsa katta ehtimol bilan turga aylanadi. Odatda C ++ parametrlanadigan turga muhtoj bo'lgan tushunchalar bilan shug'ullanadi.
Bu erda biz char qiymatidan butun sonni yaratish uchun static_cast -dan foydalanaman:
Natija:
Belgilarni kiritish
Quyidagi dastur foydalanuvchidan belgini kiritishni so'raydi, keyin belgini ham, uning ASCII kodini ham chop etadi:
Natija:
E'tibor bering, std :: cin sizga bir nechta belgilar kiritishga imkon beradi. Biroq, ch o'zgaruvchisi faqat 1 belgidan iborat bo'lishi mumkin. Binobarin, ch o'zgaruvchiga faqat birinchi kirish belgisi chiqariladi. Qolgan foydalanuvchi kiritmalari std :: cin ishlatadigan kirish buferida qoladi va uni std :: cin ga keyingi qo'ng'iroqlar yordamida chiqarib olish mumkin.
Natija:
Last updated