Poznaj C++ w$ godziny0233

Poznaj C++ w$ godziny0233



224 Godzina 15

Ostatni znak ' \0' stanowi znacznik końca tekstu. Taki sposób podawania tekstu, znak po znaku, jest bardzo niewygodny. C++ pozwala na wpisywanie tekstów do łańcuchów w skróconej formie:

char Czesc[] = "Hello World";

Jednak stosując ten zapis musisz pamiętać o dwóch rzeczach:

□    Zamiast klamer i apostrofów wykorzystuje się znaki cudzysłowu na początku i na końcu tekstu.

□    Nie dodaje się pustego znaku (nuli) końca tekstu. Kompilator dodaje go automatycznie.

W sumie łańcuch Hello World zajmuje 12 bajtów - 11 bajtów na tekst i 1 bajt na znak końca (nuli).

Dopuszczalne jest tworzenie niezainicjalizowanych tablic znakowych. Tak jak w przypadku innych tablic ważne jest, aby nie wstawiać do niej więcej niż wynosi jej rozmiar.

Listing 15.6 demonstruje wykorzystanie niezainicjalizowanego bufora znakowego.

Listing 15.6. Wypełnianie tablicy

1;    // Listing 15.6 tablica znakowa

2:

3;    #include <iostream.h>

4:

5:    int main()

6:    ł

7:    char bufor[80];

8:    cout « "Podaj tekst:

9:    cin » bufor;

10:    cout « "Oto zawartość bufora:    "    «    bufor    «    endl;

11:    return 0;

12: }

EFEKT DZIAŁANIA:

Podaj tekst: Hello World Oto zawartość bufora: Hello

ANALIZA:


W linii 7 deklarujemy bufor na 80 znaków. Wystarczy on do przechowania 79 znakowego tekstu i znaku końca.

W linii 8 użytkownik jest proszony o wprowadzenie tekstu, który jest następnie wstawiany do bufora, cin automatycznie dostawi do wprowadzonego łańcucha znak końca tekstu.

Napotkaliśmy na dwa problemy. Pierwszy polega na tym, że jeśli użytkownik poda tekst dłuższy niż 79 znaków, to cin będzie pisać poza buforem. Drugi jest widoczny na wydruku. Jeżeli użytkownik wpisze w tekście spację, to cin potraktuje ten znak jako koniec tekstu i przestanie zapisywać do bufora.

Ostatni znak ' \0' stanowi znacznik końca tekstu. Taki sposób podawania tekstu, znak po znaku, jest bardzo niewygodny. C++ pozwala na wpisywanie tekstów do łańcuchów w skróconej formie:

char Czesc[] = "Hello World";

Jednak stosując ten zapis musisz pamiętać o dwóch rzeczach:

□    Zamiast klamer i apostrofów wykorzystuje się znaki cudzysłowu na początku i na końcu tekstu.

□    Nie dodaje się pustego znaku (nuli) końca tekstu. Kompilator dodaje go automatycznie.

W sumie łańcuch Hello World zajmuje 12 bajtów - 11 bajtów na tekst i 1 bajt na znak końca (nuli).

Dopuszczalne jest tworzenie niezainicjalizowanych tablic znakowych. Tak jak w przypadku innych tablic ważne jest, aby nie wstawiać do niej więcej niż wynosi jej rozmiar.

Listing 15.6 demonstruje wykorzystanie niezainicjalizowanego bufora znakowego.

Listing 15.6. Wypełnianie tablicy

1:    // Listing 15.6 tablica znakowa

2:

3:    #include <iostream.h>

4:

5:    int main()

6:    <

7:    char bufor[80];

8:    cout « "Podaj tekst:

9:    cin » bufor;

10:    cout « "Oto zawartość bufora:    "    «    bufor    «    endl;

11:    return 0;

12: )

EFEKT DZIAŁANIA:

Podaj tekst: Hello World Oto zawartość bufora: Hello

ANALIZA


[ W linii 7 deklarujemy bufor na 80 znaków. Wystarczy on do przechowa-■ nia 79 znakowego tekstu i znaku końca.

W linii 8 użytkownik jest proszony o wprowadzenie tekstu, który jest następnie wstawiany do bufora, cin automatycznie dostawi do wprowadzonego łańcucha znak końca tekstu.

Napotkaliśmy na dwa problemy. Pierwszy polega na tym, że jeśli użytkownik poda tekst dłuższy niż 79 znaków, to cin będzie pisać poza buforem. Drugi jest widoczny na wydruku. Jeżeli użytkownik wpisze w tekście spację, to cin potraktuje ten znak jako koniec tekstu i przestanie zapisywać do bufora.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0150 Wskaźniki 139 Jeśli new nie może zarezerwować miejsca na stercie (bądź co
Elementy teletransmisji danych Transmisja asynchroniczna oznacza szeregowy przesył danych znak po zn
ZNAK - istotą znaku jest połączenie 2 zjawisk: formy oznajmującej, która nas odsyła i treści oznaczo
Warunki zaliczenia: Zaliczenie na ocenę na ostatnim wykładzie Liczba godzin: 15 wykładów Punkty
Poznaj C++ w$ godziny0004 Spis rozdziałów Część 1 Wstęp do C++ 1 1 Zaczynamy 3 2 Program w C++ 1
Poznaj C++ w$ godziny0082 68Godzina 5 14:    cout « "Podaj liczbę od 0 do 10,000
Poznaj C++ w$ godziny0084 70 Godzina 5 70 Godzina 5 8: 9: 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0088 74 Godzina 5 Last-in first-out oznacza, że ostatnia wartość położona na st
Poznaj C++ w$ godziny0093 Godzina 6 hProste klasy Klasy stanowią rozszerzenie możliwości C++, pozwal
Poznaj C++ w$ godziny0100 86 Godzina 6 86 Godzina 6 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0121 Zaawansowane sterowanie programem 109 W liniach 12-15 wprowadzamy wartości
Poznaj C++ w$ godziny0133 Zaawansowane sterowanie programem 121 Jaki znak?
Poznaj C++ w$ godziny0140 Wskaźniki 129 Wskaźniki 129 13 14 15 16 17 18 cout « "longVar: "
Poznaj C++ w$ godziny0164 Godzina 11Referencje W ciągu ostatnich dwóch godzin nauczyłeś się, jak wyk
Poznaj C++ w$ godziny0178 Godzina 12Zaawansowane referencje i wskaźniki W ciągu ostatnich trzech god
Poznaj C++ w$ godziny0221 212 Godzina 15Rysunek 15.1 Deklarowanie tablicy *— 4 bajty —► 100 bajtów
Poznaj C++ w$ godziny0223 214 Godzina 15 214 Godzina 15Rysunek 15.2 Błąd słupków ogrodzeniowych Taki
Poznaj C++ w$ godziny0225 216 Godzina 15 216 Godzina 15 ANALIZA: W liniach 5—17 deklarujemy klasę KO
Poznaj C++ w$ godziny0227 218 Godzina 15 9:    cout « Tablic*[i] [j]« andl; 10:  

więcej podobnych podstron