Un şir este o colecţie de caractere, spre exemplu "Structuri de date".
În toate limbajele de programare în care sunt definite şiruri, acestea au la bază tipul primitiv char, care în afara literelor şi cifrelor cuprinde şi o serie de alte caractere.
Se subliniază faptul că într-un şir, ordinea caracterelor contează.
Astfel şirurile "CAL" şi "LAC" deşi conţin aceleaşi caractere sunt diferite. De asemenea, printr-un uşor abuz de notaţie se consideră că un caracter este interschimbabil cu un şir constând dintr-un singur caracter, deşi strict vorbind ele sunt de tipuri diferite.