Ciągi znaków w stylu C — część 1
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 67 z 74.
Łańcuchy znaków w stylu C tworzy się za pomocą typu char zamiast string. Kończą się specjalnym znakiem nazywanym znakiem null ('\0').
Ten znak oznacza koniec ciągu znaków. Ciągi znaków w stylu C są często określane jako „ciągi znaków zakończone znakiem null”.
Na przykład prosta deklaracja:
char str1[] = "Hello";str1 jest zadeklarowane bez określonego rozmiaru. Kompilator automatycznie określa rozmiar na podstawie inicjalizatora (wraz ze znakiem null).
Przykład jawnej inicjalizacji za pomocą znaków:
char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};str2 jest zadeklarowane z rozmiarem 6 i jawnie zainicjalizowane znakami, w tym znakiem null na końcu.
Przykład częściowej inicjalizacji:
char str3[10] = "Coddy";str3 ma zadeklarowany rozmiar 10, ale zainicjalizowano tylko pierwszych 6 znaków. Reszta tablicy jest wypełniona znakami null.
Aby używać ciągów znaków w stylu C, musimy dołączyć tę bibliotekę:
#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 łańcuch znaków
// Wypisz długość łańcucha znaków
// Wypisz znak o indeksie 4
// Zmień pierwszy znak na 'X'
// Wypisz zmodyfikowany łańcuch 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