C ++ Ciągi znaków: strcpy (), strcat (), strlen (), strcmp () PRZYKŁADY

Spisie treści:

Anonim

Co to jest ciąg?

Ciąg to sekwencja znaków. Łańcuch w C ++ jest obiektem klasy std :: string. Znaki są zapisanymi sekwencjami bajtów z dozwolonym dostępem do jednego bajtu znaku.

Ciągi C ++ przydzielają pamięć dynamicznie. W razie potrzeby do ciągu można przydzielić więcej pamięci w czasie wykonywania. Ponieważ nie ma wstępnej alokacji pamięci, nie ma jej marnotrawstwa. Na ciągach możemy wykonywać różne operacje, w tym porównania, konkatenację, konwersję itp.

W tym samouczku C ++ nauczysz się:

  • Co to jest ciąg?
  • Deklarowanie ciągów
    • Ciąg znaków w stylu C.
    • std :: string
  • Dostęp do wartości ciągu
  • Funkcje ciągów:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Przykład:

Deklarowanie ciągów

C ++ obsługuje dwa typy deklaracji ciągów:

  • Ciąg znaków w stylu C.
  • Typ klasy łańcuchowej

Ciąg znaków w stylu C.

Ten typ deklaracji string został wprowadzony w języku programowania C. C ++ nadal to obsługuje. Jest to po prostu jednowymiarowa tablica znaków zakończona znakiem null (\ 0). Ciąg zakończony wartością null zawiera znaki, które tworzą ciąg, a po nich następuje wartość null.

Rozważmy deklarację ciągu podaną poniżej:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

Powyższa deklaracja tworzy ciąg, który tworzy słowo John. Słowo ma 4 znaki, ale łańcuch ma rozmiar 5. Dodatkowa spacja pozwala na przechowywanie znaku null.

Korzystając z reguły inicjalizacji tablicy, możemy napisać powyższą instrukcję w następujący sposób:

char name[] = "John";

Zauważ, że nie musisz umieszczać znaku null na końcu stałej łańcuchowej. Kompilator C ++ automatycznie umieści znak „\ 0” na końcu ciągu podczas inicjowania tablicy.

std :: string

Standardowa biblioteka C ++ udostępnia klasę ciągów, która obsługuje różne operacje na łańcuchach. Jest zapisywany jako std :: string.

Aby użyć tej klasy, musimy najpierw dołączyć ją do naszego obszaru roboczego za pomocą preprocesora #include, jak pokazano poniżej:

#include

Następnie możemy zadeklarować nasz ciąg za pomocą słowa kluczowego string. Na przykład:

string name = "John";

Powyższa instrukcja utworzy ciąg o nazwie nazwa, który będzie zawierał wartość John.

Dostęp do wartości ciągu

W C ++ możemy uzyskać dostęp do wartości ciągu za pomocą nazwy ciągu. Na przykład:

#include using namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
  2. Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
  3. Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
  4. Zadeklarowanie ciągu znaków i nadanie mu nazwy. Ciąg będzie przechowywać wartość John. Dodatkowa przestrzeń będzie przechowywać znak null.
  5. Drukowanie tekstu na konsoli.
  6. Drukowanie wartości ciągu o nazwie nazwa na konsoli.
  7. Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
  8. Koniec treści funkcji main ().

Oto kolejny przykład użycia standardowej klasy ciągów C ++:

#include #include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
  2. Dołączanie standardowej klasy ciągów do naszego kodu.
  3. Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
  4. Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
  5. Zadeklarowanie łańcucha i nadanie mu nazwy. Ciąg będzie przechowywać wartość Guru99.
  6. Drukowanie wartości nazwy ciągu obok tekstu na konsoli.
  7. Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
  8. Koniec treści funkcji main ().

Funkcje ciągów:

Często będziesz chciał manipulować strunami. C ++ udostępnia szeroką gamę funkcji, których możesz w tym celu użyć. Funkcje te są zdefiniowane w klasie CString, stąd aby móc z nich korzystać, musimy uwzględnić je w naszym kodzie. Omówmy kilka:

strcpy ()

To jest funkcja kopiowania napisów. Kopiuje jeden ciąg na inny.

Składnia:

strcpy(string1, string2);

Dwa parametry funkcji, ciąg1 i ciąg2, to ciągi. Funkcja skopiuje ciąg ciąg1 do ciągu 1.

strcat ()

To jest funkcja konkatenacji ciągów. Łączy ciągi.

Składnia:

strcat(string1, string2);

Dwa parametry funkcji, ciąg1 i ciąg2, to ciągi do łączenia. Powyższa funkcja połączy łańcuch string2 na końcu łańcucha string1.

strlen ()

To jest funkcja długości łańcucha. Zwraca długość ciągu przekazanego do niego jako argument.

Składnia:

strnlen(string1)

Parametr ciąg1 jest nazwą łańcucha, którego długość ma zostać określona. Powyższa funkcja zwróci długość łańcucha string1.

strcmp ()

To jest funkcja porównywania ciągów. Służy do porównywania ciągów.

Składnia:

strcmp(string1, string2);

Powyższa funkcja zwróci 0, jeśli łańcuchy ciąg1 i ciąg2 są podobne, mniej niż 0, jeśli ciąg1 ciąg2.

Przykład:

Poniższy przykład demonstruje, jak używać powyższych funkcji ciągów:

#include #include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
  2. Dołączanie standardowej klasy CString do naszego kodu.
  3. Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
  4. Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
  5. Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy name1. Ciąg będzie przechowywać wartość Guru99.
  6. Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy nazwa 2. Ciąg będzie przechowywać wartość John.
  7. Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy nazwa 3.
  8. Deklarowanie zmiennej całkowitej o nazwie len.
  9. Kopiowanie ciągu nazwa1 do ciągu nazwa3.
  10. Drukowanie wartości ciągu name1 obok tekstu na konsoli. Powinien wydrukować Guru99.
  11. Łączenie ciągów nazwa2 na końcu łańcucha nazwa1. Wartość name1 to teraz Guru99John.
  12. Drukowanie wartości ciągu name1 obok tekstu na konsoli. Powinien wydrukować Guru99John
  13. Określenie długości łańcucha o nazwie name1 i przypisanie wartości length do zmiennej len.
  14. Wydruk wartości zmiennej len obok innego tekstu na konsoli.
  15. Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
  16. Koniec treści funkcji main ().

Podsumowanie

  • Ciąg to sekwencja znaków.
  • Ciągi należą do standardowej klasy ciągów w C ++.
  • Możemy zadeklarować łańcuchy przy użyciu ciągu znaków w stylu C lub standardowej klasy string.
  • Funkcja strcpy () kopiuje jeden łańcuch do drugiego.
  • Funkcja strcat () łączy dwie funkcje.
  • Funkcja strlen () zwraca długość funkcji.
  • Funkcja strcmp () porównuje dwa łańcuchy.