ПредишенСледващото

Досега сме работили само с числени данни като цяло, както и валиден. Но много често (ако не е чисто научно изчисление) трябва да оперира с текстова информация. Тази листовка съдържа основна информация за това как да се работи с символи и текстове.

тип Character Чар

Всеки текст се състои от знака. Символът - определено изображение на икона. Един и същ символ може да се запише по различни начини, например, двама души от различни писане на ръка буквата "А", а дори и в компютърната представителството на една и съща буква, ще изглеждат по различен начин, ако му се покажат различни шрифтове, все още ще бъде един и същ характер. Вярно е също, от друга: различни символи могат да бъдат написани по същия начин, например, тук са две различни букви, един - на латиница, а другият - на българския: "А" и "А". Въпреки факта, че те изглеждат еднакви, това е по-удобно да ги разглеждат като различни герои.

По този начин, метод за съхранение на текстова информация в компютъра не е пряко свързан с образа на текста. Вместо това, символи се съхраняват техните стаи - цифрови кодове, но тя изглежда като характер с кодовия номер на екрана зависи от това кои шрифт се използва за показване на героите. В същото време, разбира се, ще трябва да се споразумеят за единен метод за кодиране на знаци числови кодове или текст, записан на компютър, не може да се прочете на друг компютър.

Първоначално се съгласи, чрез кодиране на един символ вземе един байт, т.е. 8 бита информация. По този начин е възможно да се кодират 256 различни стойности, което е 256 различни герои могат да бъдат използвани в писмен текст. Това е достатъчно, за да се покажат всички букви от латинската азбука, цифри, препинателни знаци, както и някои други знаци. Стандартно се посочва кои цифрови кодове, които съответстват на главните герои, наречени ASCII. Таблицата с ASCII включва героите с кодове от 0 до 127, тоест, ASCII - е седем битов код. Ето таблица ASCII:

В същото героите с кодове по-малко от 32 - специален контрол символи, които не са показани на екрана. Например, за да отбележи края на линията на система Linux с помощта на един символ с код 10 и Windows система - два последователни символни кодове 13 и 10 символа с кодове 48-57 съответства на проследяване на арабски цифри (символ бележка с код 0 - не е символ, който се появява на екрана, като "0"), символите с кодове 65-90 - главни букви от латинската азбука, като че ли, за да добавите код им 32, а след това получи малки букви на латинската азбука. В интервалите между тези граници са препинателни знаци, математически операции, както и други знаци.

Ние ще работи само с ASCII символи, така че само един байт се използва за представяне на един герой.

В C ++, използвайте Чар типа данни за съхраняване на еднобайтови знаци. Чар тип променлива може да се разглежда по два начина: като цяло число, заемащи 1 байт и в състояние да приема стойност от -128 до 127 (. Мостов Подписано Чар е неподписан модификация грозен Чар заема стойности от 0 до 255.) И тъй като един символ на текст. Само по себе си, определението за символ може да бъде и двете подписани и неподписани, в зависимост от операционната система и компилатор. Затова използвайте типа Чар не се препоръчва, по-добре е да се уточни изрично ще бъде повратна (подпис) или неподписани (неподписана).

Както и с цели числа, знак на тип данни да добавяте, изваждане, умножение, деление и дори. Но ако умножение и деление, обикновено са безсмислени, а след това събиране и изваждане твърде значимо. Например, ако символът "А" се добавя 1, а след това получи характер "Б". и ако ние се изважда 1, получаваме характер "@". Това означава, че в следния фрагмент от код на екрана ще се появи буквата B.

Този пример показва, че променливата от тип символ може да бъде назначен на стойност, равна на кодовете на ASCII символи, ако тези герои, които са затворени в кавички. "А" запис Т.е. ще съответства на характера или ASCII код А. 65.

Също така в този пример показва, че при показване на променлива от тип знак, ще видим този образ символ. Откъде знаеш, че стойността ASCII-код на характер? Тя не трябва да се знае, самият символ - това е най-ASCII код. И как ще го покаже? Тя е много проста - трябва да се превърнете стойност знак на стойността на тип Int. Така например, по следния начин:

въведете името написано в скоби преди стойността, това е стойността на реализацията на оператора на определения вид.

По същия начин, когато четене тип CHAR променлив дебит чрез Cout. от входния поток се чете на един знак, на променливата ще има стойност, равна на неговата ASCII-код. Например, ако се напише програма, която съдържа линия

го стартирате, въведете характер А в променлива век ще бъде записано на стойността на 65 (без кавички!) - ASCII-код характер А.

Променлива от тип символ може да бъде ясно и възлага числени стойности. Например, можете да го направите:

Тази програма показва две линии: "А 65" и "

126 ", което означава, знаци с ASCII-код 65 (А) и 126 (

Самите) ASCII-кодове.

Подредете последователно знак по знак четене всички вход може да се използва, докато примката.

В този пример, програмата ще прочете характер вход поток (по подразбиране - за въвеждане от клавиатурата), докато достигне до края на файла. За да укажете на програмата за въвеждане на завършване, когато въведете от клавиатурата, за да натиснете Ctrl-г ключове на система Linux, и Ctrl-Z на система Windows.

Тази програма е за четене на данни ще бъдат игнорирани разделител символи: интервали, нови редове и разделите. Ако искате променливата век чете всички герои, включително и разделители, че е необходимо да въведете поток CIN манипулатори noskipws, определени с помощта на инструкциите:

Ленти в C ++

Текст, който - поредица от символи. Тъй като знаците в низ са номерирани, естественото представяне на ред ще бъде масив от знаци. Така струни и представена в език C - Низ е масив от символи, както и за посочване на края на линията, за да се използват символи с ASCII-код 0, което ви позволява да съхранявате редове с променлива дължина (което е знак масив [п] могат да се съхраняват струни с всякаква дължина, които не надвишават . н-1 Този метод за съхраняване на струни зареди редица неудобства: всеки конец е бил ограничен от дължината на размер на масива, и за изчисляване на дължината на низа, че е необходимо да се мине през цялата линия, докато символът нула, т.е. определението на дължина изисква номера на реда на операциите Пропорционални ionalnoe тази дължина.

В C ++, за да представляват линиите там е по-съвършен вид на низ данни. която се основава на същия набор от символи, които завършват на нула характер, но съдържа редица допълнителни функции. За да работите с C ++ езикови струни трябва да са в началото на програмата, за да се свържете описанието на тип низ. който е в същия файл:

Променлива до магазин низ данни е обявена, както следва:

Присвояване на променлива низ за постоянна стойност може да бъде, както следва:

Със запис на линии в текста на програмата в кавички, ние вече са се срещали, когато текст изход в Cout на поток. Моля, обърнете внимание - пепел константи са написани на единични кавички, и линии - в кавички. По-специално, "A" - е символ, а "А" - е низ от един символ. Ето защо, тип Чар променлива е невъзможно да се придаде стойност "А". защото те имат несъвместими типове данни.

В действителност, променлива от тип низ е масив от символи, с всеки един от героите на низа може да се управлява отделно, като се позовава на тях, като индекс като масив. Например:

За да се определи дължината на низа е размер () метод. приложен към линията. Тя връща цяло число - броя на знака на ред. Може да се използва, както следва:

Да започнем с това, ние се нуждаем две операции на низове: добавянето на два реда и промяна на размера на низа.

Основни функции на редовете - добавянето на, например, чрез добавяне на линиите на "Здравей" и "свят!" получите низа "Здравей, свят!". Подобна операция се нарича конкатенация на низове.

Ето един пример за използване на низове:

Друга стъпка - промяна на размера на линията. За тази цел има преоразмеряване метод. която се прилага към линията. Ние преоразмеряване метод има два записа образуват: с един или два параметъра. Ако той се нарича с един параметър, този параметър определя дължината на новата линия. Така например, по следния начин:

Вторият параметър определя символа метод за оразмеряване, който символи в низа ще бъдат изпълнени, ако размерът се увеличава линия, в резултат на промяна на размера. Например:

При четене редовете на входния поток се чете всички символи освен разделители (пространства, раздели, и нови линии), които са в границите между редовете. Например, ако при следващата програма

въвеждане на текст "Mama сапун кадър" (с произволен брой интервали между думите), а след това низа "Мамо" е написан на масива S1. в S2 - "сапун". в S3 - "рамка".

Следователно, за да се организира четенето на всичките думи на файла, както следва:

Ако искате да се помисли за една линия с цялото пространство, че е необходимо да използвате функцията за getline, както следва:

В този случай, когато стартирате програмата и да влезе в низа "Мамо сапун кадър". След това тази стойност се определя на линията и S. Разпознаване цялата входния поток редове може да използва следния код:

упражнения

A: ASCII-код характер

Прочетете стандартния вход и изход символът го ASCII-код. Решаване на този проблем, използвайки само една променлива от тип Чар.

Програмата получава на входа на един знак с кода на ASCII 33-126.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!