Ciągi znaków w stylu C — część 1
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 67 z 74.
Ciągi znaków w stylu C tworzy się za pomocą typu char zamiast string. Kończą się one specjalnym znakiem zwanym znakiem null ('\0').
Ten znak oznacza koniec ciągu znaków. Ciągi znaków w stylu C są często nazywane „ciągami znaków zakończonymi znakiem null”.
Na przykład prosta deklaracja:
char str1[] = "Hello";str1 jest zadeklarowana bez określonego rozmiaru. Kompilator automatycznie określa rozmiar na podstawie inicjalizatora (włącznie ze znakiem null).
Przykład jawnej inicjalizacji znakami:
char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};str2 zadeklarowano z rozmiarem 6 i jawnie zainicjalizowano znakami, w tym znakiem NUL na końcu.
Przykład częściowej inicjalizacji:
char str3[10] = "Coddy";str3 jest zadeklarowana o rozmiarze 10, ale zainicjalizowano tylko pierwsze 6 znaków. Reszta tablicy jest wypełniona znakami null.
Aby używać funkcji do obsługi ciągów znaków w stylu C, musimy dołączyć ten nagłówek:
#include <cstring>Po dołączeniu możemy użyć funkcji strlen, aby uzyskać długość ciągu znaków w stylu C:
std::cout << strlen(str1); // Wynik: 5Wyzwanie
ŁatwyUtwórz funkcję o nazwie printStringInfo, która przyjmuje jako dane wejściowe ciąg znaków w stylu C i wykonuje następujące czynności:
String:po którym następuje oryginalny ciąg znaków.Length:po którym następuje wynikstrlen(str).Character at index 4:po którym następuje znak na tej pozycji.Modified string:po którym następuje ciąg znaków po zmianie pierwszego znaku naX.
Spróbuj swoich sił
#include <iostream>
#include <cstring>
void printStringInfo(char str[]) {
// Wypisz ciąg znaków
// Wypisz długość ciągu znaków
// Wypisz znak o indeksie 4
// Zmień pierwszy znak na 'X'
// Wypisz zmodyfikowany ciąg znaków
}
int main() {
char message[] = "Hello, World!";
printStringInfo(message);
return 0;
}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