Ciągi znaków w stylu C — część 2
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 68 z 74.
Warto pamiętać, że gdy deklarujesz ciąg znaków w stylu C o określonym rozmiarze, musisz przydzielić wystarczająco dużo miejsca na znaki, które chcesz przechować, oraz jedno dodatkowe miejsce na znak null.
Na przykład:
// Poprawnie: "Hello" wymaga 6 miejsc
// (5 liter + '\0')
char str1[6] = "Hello";// Źle: tablica jest za mała!
// "Hello" potrzebuje 6 miejsc, ale przydzielono tylko 5
char str2[5] = "Hello";
// Błąd: kod się nie skompiluje — jest tylko 5 miejsc na 6 znaków ('H','e','l','l','o','\0')// Poprawnie: Dodatkowe miejsce nie stanowi problemu
// Więcej niż wystarczająco miejsca (10 > 6 wymaganych)
char str3[10] = "Hello";// Przykład pokazujący liczbę znaków:
char name[5] = "John"; // Wymaga 5 miejsc:
// J + o + h + n + '\0' = 5 znakówMożesz uzyskać dostęp do poszczególnych znaków w ciągu znaków w stylu C, używając notacji tablicowej:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'Możesz także modyfikować znaki w łańcuchu znaków w stylu C, o ile nie przekroczysz granic tablicy:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // Wyświetla "Jello"Nie możesz jednak bezpośrednio przypisać nowego ciągu znaków do ciągu znaków w stylu C po jego zadeklarowaniu. Musisz użyć funkcji takich jak strcpy do kopiowania ciągów znaków, co omówimy na późniejszych lekcjach.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 1
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawy wejścia/wyjścia
Instrukcja coutInstrukcja cinWczytywanie ciągu znakówPowtórka — do 120Powtórka — prawda czy fałsz3Zmienne, część 2
Deklarowanie typówKonwencje nazewnictwaPowtórka — inicjalizacja zmiennychKonwersja typów, część 1Konwersja typów, część 26Podejmowanie decyzji
Instrukcja ifIf - elseInstrukcja switchOperator warunkowyPowtórzenie: if - elseZagnieżdżone if - else9Pętle
Pętla for — część 1Pętla whilePętla do whilePrzerwanie pętliPrzejście do następnej iteracjiPętla for — część 2Pętle zagnieżdżonePętle nieskończonePodsumowanie — dane wejściowe dynamiczne12Ciągi znaków
Ciągi znaków w stylu C — część 1Ciągi znaków w stylu C — część 2Operacje na ciągach znakówFunkcje obsługujące ciągi znaków — część 1Funkcje obsługujące ciągi znaków — część 2Poćwicz samodzielnie: Kompilator C++ online