Kurs programowania w C cz. 116

Nasza ocena:

5
Wyświetleń: 462
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 116 - strona 1

Fragment notatki:

OPERACJE NA ŁAŃCUCHACH 133 int main(void) { char str[100]; int cmp; fputs("Podaj ciag znakow: ", stdout); fgets(str, sizeof str, stdin); if (!strncmp(str, "foo", 3)) { puts("Podany ciag zaczyna sie od ’foo’."); } return 0; } Kopiowanie napisów Do kopiowania ciągów znaków służy funkcja  strcpy,  która kopiuje drugi napis w miejsce pierwszego. Musimy pamiętać, by w pierwszym łańcuchu było wystarczająco dużo miejsca. char napis[100]; strcpy(napis, "Ala ma kota."); Znacznie bezpieczniej jest używać funkcji  strncpy,  która kopiuje co najwyżej tyle bajtów ile podano jako trzeci parametr. Uwaga! Jeżeli drugi napis jest za długi funkcja  nie  kopiuje znaku null na koniec pierwszego napisu, dlatego zawsze trzeba to robić ręcznie: char napis[100]; strncpy(napis, "Ala ma kota.", sizeof napis - 1); napis[sizeof napis - 1] = 0; Łączenie napisów Do łączenia napisów służy funkcja  strcat,  która kopiuje drugi napis do pierwszego. Po- nownie jak w przypadku strcpy musimy zagwarantować, by w pierwszym łańcuchu było wy- starczająco dużo miejsca. #include  #include  int main(void) { char napis1[80] = "hello "; char *napis2 = "world"; strcat(napis1, napis2); puts(napis1); return 0; } I ponownie jak w przypadku strcpy istnieje funkcja  strncat,  która skopiuje co najwyżej tyle bajtów ile podano jako trzeci argument i  dodatkowo  dopisze znak null. Przykładowo powyższy kod bezpieczniej zapisać jako: #include  #include  ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz