Witam i witam ponownie.
Chcę kontynuować naszą dyskusję na niektórych funkcjach w standardowej
bibliotece c.
To wiele funkcji przeszliśmy już na zajęciach, ale chciałem ci
o tym przypomnieć.
Więc jest wiele ważnych różne funkcje ze standardowej
biblioteki c, które już mamy omówione w trakcie kursu
ze wszystkimi naszymi przykładami i wszystkimi rzeczy, których się nauczyliśmy.
Dużo rozmawialiśmy funkcje łańcuchowe.
A niektóre z nich są bardzo łatwe w użyciu a niektórych będziemy używać bardzo
często, więc powinieneś się z nimi zapoznać.
Aby skorzystać z którejkolwiek z tych funkcji, musisz dołączyć
ciąg pliku nagłówkowego. h, wszystko jest zdefiniowany w łańcuchu. godz.
Rozmawialiśmy o str. Cat.
Str cat łączy dwa łańcuchy, dwa parametry, które przyjmuje,
dwa wskaźniki znakowe.
I zwróci postać wskaźnik połączony z drugim.
Więc umieszczenie znaku null na końcu końcowego ciągu
funkcja zwraca s1.
Str char to wyszukuje plik ciąg zawierający znak.
To zwróci plik gwiazda postaci, jak również.
To dobry sposób wyszukiwania.
Rozmawialiśmy o tym dość trochę ze sznurkiem kot.
Porównanie trwa porównać dwa ciągi.
To jest standardowy sposób, w jaki to robisz.
Potrzeba dwóch wskazówek i zwraca liczbę całkowitą.
Mamy na to kilka przykładów gdzie w zasadzie, jeśli zwrócisz zero,
dwa ciągi są równe.
Jeśli zwrócimy więcej lub mniej niż, jeśli
przekręcisz więcej niż zero, oznacza to, że s1 wynosi zwykle większy w rozmiarze alfabetycznym.
Więc jeśli przekażesz ciąg, że zawiera a, a następnie drugi ciąg to
b, zwróci wartość większą niż zero, ponieważ albo zmieniłoby się mniej niż zero, ponieważ a
jest mniejsze niż b.
Jeśli zdałeś b jako pierwszy parametr, a c jest drugim parametrem,
jakimś łańcuchem zaczynając od b lub c, zwróci wartość
większą niż zero.
Więc musisz zrozumieć te zwracają wartości.
To jest właśnie ważne porównanie str.
Str. Copy.
Oto jak możesz przypisać ciąg do innego ciągu.
Pamiętaj, ciągi, wskaźniki i tablice znaków,
nie możesz bezpośrednio przypisać ciągu używając operatora przypisania.
W przypadku liczb całkowitych i zmiennoprzecinkowych możesz po prostu użyj operatorów równości.
Nie można tego zrobić ze sznurkami.
Więc musisz użyć str copy, kiedy ty chcesz przypisać ciąg do wskaźnika, wskaźnika
znakowego lub tablicy znaków.
Możesz zainicjować znak tablica literał ciąg znaków stała wewnątrz
podwójnych cudzysłowów.
Ale potem, po inicjalizacja, jeśli chcesz
to zmienić, będziesz musiał użyć str copy.
Długość str.
Kolejna ważna funkcja uzyskać długość łańcucha.
Zwraca rozmiar t, który jest liczba całkowita reprezentująca długość.
Wszystkie te funkcje łańcuchowe przyjmują wskaźniki lub tablice
znaków jako parametry.
Musimy więc zrozumieć jak to również działa.
Inna funkcja tekstowa strncat.
Zapamiętaj wszystkie funkcje że zamiast tego dodaj koniec są trochę bezpieczniejsze,
ponieważ ty nie mają przepełnień bufora.
Więc w strncat trzeci parametr jest dodany, a to powie kopiowanie lub
łączenie tak wielu parametrów.
Zwykle trzecim parametrem jest będzie wielkością pierwszego
parametru, ponieważ nie chcesz kopiować coś większego niż to.
Te funkcje powinny być używane w
stosunku do innych funkcji łańcuchowych, ponieważ są bezpieczny dla przepełnienia bufora.
Porównaj Strn.
Znowu będziesz porównywać pewne liczba znaków dla s1 i s2.
Kopia Strn, tutaj trzeci parametr koniec byłby prawdopodobnie długością str
lub rozmiarem s1.
Ponieważ zamierzasz skopiować s2 i s1, ale nie chcesz kopiować więcej
bajtów niż s1 może pomieścić lub przechowywać.
Str char.
Tutaj możesz szukać ciąg ostatniego wystąpienia
znaku.
Więc zauważasz, że wygląda to bardzo znany lub podobny do znaku str,
jest tu dodatkowe r.
Więc zamiast zwracać pierwszy wystąpienie, zwróci to
ostatnie wystąpienie, które zostało użyte tak samo jak poprzedni.
Str str.
To wyszuka ciąg.
Więc to jest funkcja wyszukiwania, gdzie próbujesz znaleźć
zasadniczo podciąg wewnątrz łańcucha.
Ponownie, biorąc dwa wskaźniki znaków.
Strtok.
To była ważna funkcja, w której czy może to pomaga w analizowaniu danych.
Strtok przyjmuje separator jako drugi parametr i będzie
szukać tego znaku separatora w dowolnym miejscu w ciągu.
Tak często używasz czegoś takiego jak spacja lub wysuw linii dla s2.
To przerwie strunę na wiele różnych żetonów.
Ponownie używaj, kiedy chcesz zwykle analizować dane.
Za każdym razem musisz zadzwonić do strtok wiele razy,
aż uzyskasz wartość null, jeśli nadal jesteś szukanie kolejnego tokena, który chcesz znaleźć
w danym ciągu.
Mieliśmy też kilka ważnych funkcje znakowe.
Wszystkie funkcje postaci są zdefiniowane w ctype. godz.
Funkcje postaci, które my używane były funkcje is sprawdzające, czy znak
jest, czy nie alfanumeryczny lub czy jest pusty, czy
też jest kontrolką znak po cyfrze, było tam
wiele różnych funkcji.
Więc pamiętaj o tym typie. h pozwala abyśmy sprawdzili, czym
są te różne postacie.
Mieliśmy też kilka funkcji konwersji w ctype. h, głównie nasze dwie cholewki.
Dwie niższe mają charakter i da
mały odpowiednik tego c.
Pamiętaj, że mieliśmy wyzwanie, gdzie przekonwertowaliśmy małe litery na wielkie.
W tym wyzwaniu faktycznie dodaliśmy do naszej tabeli ASCII, ale
mogliśmy nazwać dwa górne na znaku.
Mogliśmy ustawić dwa wokół znak, o
ile uwzględnimy ctype. hi to by się nawróciło mała litera na wielką.
Mieliśmy dużo IO funkcje, wejście i wyjście.
Skoncentrowaliśmy się na czytaniu i pisząc pliki, ale
czytamy również dane wejściowe z klawiatury i wypisywaliśmy dane do konsoli lub ekranu.
Aby więc użyć najpopularniejszego IO funkcje, to wszystko w
standardio. h plik nagłówkowy.
Ten plik zawiera deklaracje dla różne funkcje IO, a
także definicje stałych, takie jak koniec pliku, standard zerowy w standardowym wyjściu
i błąd standardowy.
To wszystko są wartości stałe.
Jest też stała dla plik struktury pliku.
Fclose to funkcja, którą my zamykał nasze strumienie.
Zamyka plik identyfikowane przez wskaźnik pliku.
I zwraca zero, jeśli tak zamknij udany, w przeciwnym razie eof.
Feof, to funkcja, której nie zrobiliśmy użyj jawnie, ale to sprawdzi, czy jesteś
na końcu pliku, w przeciwieństwie do porównywania do stałej,
możesz zrobić feof.
Fflush.
To jest funkcja, która będzie spłukiwać wszystkie dane z wewnętrznego bufora.
Czasami musisz to zrobić kiedy chcesz zacząć od nowa, ale w
zasadzie po prostu się pozbywasz czegokolwiek w buforze.
Mamy też fgetc.
To jest indywidualne czytanie znaków, pobiera wskaźnik pliku.
Mamy pozycję fget.
To jest część funkcje pozycji.
Pobiera aktualną pozycję pliku dla pliku skojarzonego
ze wskaźnikiem pliku i zapisuje go w typie pozycji f, który jest zdefiniowany
w standardzie io. h jak dobrze.
Mieliśmy swoje fgets.
To było czytanie w ciągach.
Bardzo ładnie, czyta znaki ze wskazanego pliku, ale
liczba znaków.
Fopen otworzy plik w formacie określony tryb: czytaj, zapisuj lub
dołączaj za pomocą wskaźnika pliku.
Fprintf zapisze dane i sformatuje wyjście i jest podobne do funkcji printf, która
zajmie plik argumenty określone przez wskaźnik, a następnie użyj
sformatowanych danych do zapisu.
Możesz więc zapisywać liczby całkowite, podwójne używając specyfikatorów formatu, a następnie zmiennych,
które chcesz zapisać.
Mieliśmy też fputc, który będzie zapisz znaki do pliku.
Fputs zapisze ciąg do pliku.
Zajmuje bufor i plik wskaż, co chcesz napisać i plik,
do którego chcesz pisać.
Fscanf odczyta dane z pliku.
Pobierze dane wejściowe i użyje tego samego formatu
co scanf specyfikatory formatu i zmienne.
Ale to miło, że chcesz wczytać dane oddzielone spacją.
Możesz użyć fscanf i możesz określić typ, więc przeczytaj go bezpośrednio
do ints, double, określone typy danych.
Fseek zmieni pozycję gdzie wskazujesz w pliku.
Więc nie musisz zaczynać od początek lub koniec pliku.
Możesz przejść bezpośrednio do środek pliku.
Gdy już wyszukasz tę pozycję, Twój następny odczyt lub zapis użyje tej
pozycji do zapisu lub odczytu.
Pozycja Fset jest podobna do fseek.
Ustawia bieżącą pozycję pliku
w pliku skojarzonym ze wskaźnikiem pliku do wartości wskazywany przez pozycję f, fpos.
Mieliśmy też spotkanie.
Ftell zwróci jak wiele bajtów od początku
bazujesz na wskaźniku pliku.
Więc to jest względny poza siedzibą w bajty od aktualnej pozycji,
nie zawsze od początku, ale obecna pozycja.
Używamy ftell w jednym z naszych wyzwania, aby odczytać plik w odwrotnej kolejności.
Printf.
Używamy tego prawdopodobnie częściej niż jakakolwiek inna funkcja.
To było widoczne wyjście na ekran.
Używa specyfikatorów formatu i zmienna liczba
argumentów oddzielonych przecinkami.
Printf jest bardzo przydatny do debugowania i wyświetlając wyjście, co robisz całkiem
sporo wewnątrz programu w c.
Usunąć.
Usuń to funkcja, w której możesz usunąć plik.
Zajmuje nazwę pliku.
Wskaźnik pliku musi zostać zamknięty.
Nie możesz go otworzyć.
Rename zmieni nazwę jednego pliku na drugi plik również musi zostać zamknięty, plik
nie może zostać otwarty.
Scanf czyta wejście z zwykle domyślnie z klawiatury.
Możesz to zmienić, aby odczytywać dane wejściowe z innych strumieni, jeśli chcesz.
Mieliśmy również funkcje konwersji omawialiśmy przez cały kurs.
Większość tych funkcji znajduje się w standard lib. h plik, plik nagłówkowy.
Mieliśmy funkcję atof.
To jest konwersja ciągu do float i przekazujesz go w postaci łańcucha.
Mamy funkcje atoi.
To przekształcenie pliku ciąg na liczbę całkowitą.
Atol konwertuje ciąg na plik long, a przekazujesz ciąg i
zwraca on albo powrót metoda, na którą konwertujesz.
Te są bardzo przydatne.
Często używasz ich do konwersji ciągi do jakiegoś rodzaju liczbowego.
Atoll przekształca go w długi długi int.
Ale upewnij się, że spojrzysz na plik standardowy plik nagłówkowy lib
dla większej liczby funkcji konwersji.
Mieliśmy nasze funkcje pamięci, nasze funkcje dynamicznej alokacji pamięci.
To są naprawdę ważne.
Ważna jest dynamiczna alokacja pamięci ponieważ jest znacznie wydajniejszy.
Używasz tylko pamięć, której potrzebujesz.
Nie tworzysz danych statycznych.
Pozwala na twój program być bardziej elastycznym.
Wszystkie te funkcje są zawarte w standardowym lib. godz.
Rozmawialiśmy o kaloku.
Calloc to świetna funkcja, w której możesz przydzielić określony rozmiar,
który zostanie pomnożony przez n.
Możesz więc określić typ danych również i pomnoży to.
Fajna rzecz w Calloc, inicjalizuje Twoje dane.
Więc to jest naprawdę preferowane od malloc.
Mamy naszą darmową funkcję co spowoduje usunięcie pamięci.
Cała ta pamięć mija do stworzenia na stercie.
Więc będziemy dużo w pobliżu dłużej, ale to od Ciebie jako
programisty zależy zarządzanie tą pamięcią.
Zawsze chcesz uwolnić swoje pamięć po tym, jak skończysz jej
używać, ponieważ pamięć jest ograniczona zasobów w innych programach i chcemy wykorzystać
tę pamięć.
Więc zawsze dzwoń za darmo po robisz calloc lub malloc.
Malloc jest prostszy wersja tworzenia pamięci.
W rzeczywistości tak nie jest zainicjuj dowolne dane.
Po prostu przyjmuje rozmiar jako parametr.
Zwraca gwiazdę pustki.
Więc zawsze musisz go rzucić tak jak w przypadku Calloc do dowolnego
rodzaju pamięci, na którą wskazujesz.
Jeśli wskazujesz na int lub float, musisz to rzucić.
Mamy również realokację.
Realloc jest niesamowity, ponieważ możesz faktycznie dodać do istniejącej pamięci.
I tak w ten sposób twój pamięć może być dynamiczna.
Możesz powiększyć, jeśli chcesz przechowywać więcej danych.
Realloc przyjmuje wskaźnik rozmiaru.
Wszystkie te dane zostaną zachowane wskazywało poprzednie wspomnienie.
Zaalokuje nową pamięć ale zachowa go, więc możesz
dodać do istniejącej pamięci.
Bardzo, bardzo przydatne.
Dynamiczne tworzenie pamięci jest naprawdę przyda się we wszystkich twoich programach, szczególnie dlatego, że
wskazówki są bardzo, bardzo ważne, są znacznie
bardziej wydajne.
Ale upewnij się, że wszystko rozumiesz te pliki nagłówkowe, których używamy
w trakcie kursu.
To są główne, które są bardzo, bardzo ważne.
Porozmawiamy o kilku nowych w kilka następnych wykładów, o których nie rozmawialiśmy tak
często, jak mi się podobało.
Ale to jest kilka również ważne.
Dziękuję Ci.