Sümboleid salvestatakse arvutis tavaliselt ühe baidi abil. Igale tähele vastab teatav kindel kood. Need koodid on kindlaks määratud ASCII tabelis. Peale ASCII on olemas ka teisi koode nagu näiteks EBEDIC, mida kasutatakse suurarvutitel jms. Osa UNIX-süsteemidest tunneb küll ASCII koodi, kuid kasutab igas baidis tähe jaoks vaid seitset bitti, võimaldades nii kodeerida vaid 128 tähte ja sümbolit. Käesolevas raamatus käsitleme vaid standardset ASCII koodi.
Standardne ASCII kood on aga vaid esimese 128 sümboli osas alati muutumatu. Ülejäänud sümbolite osas sõltub tegelikult ekraanile väljastatav sellest, millise alamkoodi (code page) te valisite. Tavaliselt kasutatav alamkood 437 (ameerika) ei sisalda paljusid vajalikke sümboleid nagu näiteks tähti õ ja Õ. Rahvusvaheline alamkood (850) sisaldab ka neid tähti, kuid vähem joonelemente. Nimetatud erinevuste tõttu on programmeerimiskeeles C muutujate ja funktsioonide nimedes lubatud kasutada vaid sümboleid koodidega vahemikus 33 - 128, s.o. a -z, A - Z ja 0 - 9.
Sümbolite salvestamiseks kasutatakse vaid tüüpi char. Näiteks:
char a, b;
...
a = 'A'; /* omistame muutujale a sümboli 'A' --> kood: 65 */
b = a + 3; /* sümboleid ja täisarve võib liita
ja lahutada ==>b ='D'*/
Sel põhimõttel saab ka näiteks ühekohalisi numbreid konverteerida vastavateks sümboliteks :
char a, b; ... a = 3; /* number 3 */ b = a + '0'; /* sümbol '3' */
Selline konverteerimine ei ole aga päris korrektne. Mõned operatsioonisüsteemid kasutavad kahebaidilisi sümboleid. Ka sümbolite koodid võivad muutuda. Seepärast on parem kasutada standardseid C - keele funktsioone atoi(), atof() jt.
Sümboleid jaotatakse kindlatesse gruppidesse: väiketähed, suurtähed, numbrid jne. Päisefail CTYPE.H sisaldab nende sümbolite tüüpide selgitamiseks mitmete funktsioonide prototüüpe, nagu näiteks isalpha(), isdigit() ja ishexdigit(). Neid funktsioone kasutatakse sageli näiteks translaatorite programmeerimisel.
Sümboleid salvestatakse sageli sümbolite jadana (string). Selline jada võib sisaldada suvalise hulga sümboleid. Jada lõpus peab olema sümbol koodiga null. Teised programmeerimiskeeled käsitlevad stringe erinevalt. Programmeerimiskeel C sisaldab palju funktsioone stringide töötlemiseks. Nende prototüübid on salvestatud päisefailis STRING.H. Stringid koosnevad ainult sümbolitest. Teiste andmetüüpide suuremal hulgal salvestamiseks kasutatakse massiive.