Tablice i napisy 
Napisy

Napisy w języku C/C++ to po prostu tablice znaków. Przyjęto umowę, że koniec napisu wskazuje znak o kodzie zero (nie mylić ze znakiem zero, który ma kod 48).

Jest to bardzo użyteczna konwencja, gdyż wielkość tablicy wcale nie musi odpowiadać długości napisu. Typowa sytuacja to taka, w której deklarujemy tablicę o pewnej wielkości (bufor), po czym zapisujemy do niego tekst, np. wprowadzony przez użytkownika. Na ogół tekst jest znacznie krótszy od wielkości bufora.

char napis[] = {'D','a','n','i','e','l','\0'};
Jeśli chcemy w tablicy znakowej przechowywać napis, który ma N liter, to tablica musi mieć wielkość co najmniej (N+1) - aby zmieścić kończące zero.

Napisy podawane w cudzysłowach

Podawanie napisów tak jak powyżej, chociaż formalnie poprawne, jest bardzo uciążliwe. Język C/C++ pozwala na wprowadzanie napisów przy pomocy znaków cudzysłowu. Każdy ciąg znaków pomiędzy znakami cudzysłowu jest napisem z automatycznie dodanym kończącym zerem.

Powyższa deklaracja tablicy napis jest funkcjonalnie równoważna z

char napis[] = "Daniel";

Znaki specjalne w cudzysłowach

Wprowadzając napis za pomocą znaków cudzysłowu możemy użyć w nim znaków specjalnych, na przykład

char napis[] = "Wykladowca:\n\tDaniel Wilczak";

Wydrukowanie tego napisu (np. za pomocą strumienia cout) da w wyniku

Wykladowca:
        Daniel Wilczak
Ostrzeżenie:
Tablicę znakową można zainicjalizować w momencie deklaracji. Późniejsza zmiana NIE JEST MOŻLIWA przy pomocy operatora podstawienia. O sposobach modyfikacji powiemy w dalszej części kursu.
char napis[] = "Daniel";
napis = "Roman"; //BLAD

Przykład - użycie napisów

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak