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'};
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
char napis[] = "Daniel"; napis = "Roman"; //BLAD