Datatypen char används för variabler som ska rymma enskilda tecken. Med tecken menas inte bara bokstäver utan även siffror och specialtecken. Det kan verka förvillande att siffror kan vara både tecken och tal. Ett exempel på när siffror är tecken är t.ex. de företagsnamn där siffror ingår, bilnnummer etc. Huruvida man i programkoden väljer att behandla siffror som tal eller tecken (d.v.s. val av datatyp) beror på vad man ska göra med dem.

Än mer förvillande är att datatypen char lagrar små tal. Alla tecken motsvarar ett visst tal (0 till 255). Exakt vilket tal ett tecken motsvarar varierar med vilken teckenuppsättning man använder, men vanligtvis används ASCII. Denna teckenuppsättning finns i flertalet varianter då det gäller tecken med ASCII-kod 128 eller högre. Några varianter av ASCII-tabeller hittar du på nästa sida. Char är alltså datatypen för små tal och när du trycker på tangenten A så lagras den i datorns minne som talet 65. När sedan detta ska skrivas till skärmen så omvandlas talet 65 till tecknet A.

Tilldelning av värden till en char-variabel skiljer sig från andra variabeltilldelningar. Du skriver variabelvärdet, d.v.s. tecknet inom enkla citattecken.

char mitt_tecken;
mitt_tecken = 'J';
cout<<"Mitt tecken är "<<mitt_tecken<<endl;

Man kan även göra tilldelningen utifrån ASCII-värdet och kan då skriva det så här:

char mitt_tecken;
mitt_tecken = 74;
cout<<"Mitt tecken är "<<mitt_tecken<<endl;

Att varje tecken motsvaras av en sifferkod medför att man kan använda matematiska operatorer på tecken. Nedan ser du ett exempel på en kod som inhämtar ett tecken från användaren och sedan visar det efterföljande tecknet i ASCII-tabellen. Observera additionen i koden.

 

 Exempel 5.2

 #include <iostream> 
 
 using namespace std; 
 
 int main()
 { 
  char tecken1, tecken2;
  cout<<"Ange ett tecken"<<endl;
  cin>>tecken1;
  tecken2=tecken1+1; // t.ex. A blir B 
  cout<<"Du angav "<<tecken1;
  cout<<" nästa tecken i ascii-tabellen är ";
  cout<<tecken2<<endl;
  return 0;
 }

 

Glöm ej att char enbart kan rymma ett enskilt tecken. För att jobba med hela ord eller fraser behöver du lära dig att använda strängar vilket behandlas i senare avsnitt.

 
© Stockholms Stad 2001