funkcja sscanf w c

funkcja sscanf w c
W różnych językach programowania, takich jak C, zawsze spotykamy programy, które przyczyniają się do przyjmowania danych wejściowych od użytkownika w postaci dowolnej wartości wpisanej z wejścia klawiatury, która obejmuje użycie metody Scanf (). Ale istnieje kilka innych programów, w których chcemy odczytać dane sformatowane z drugiego ciągu zamiast wprowadzania klawiatury. W przypadku takich rodzajów odczytu sformatowanych ciągów od jednego ciągu do drugiego używamy metody sscanf (). Ta funkcja zastępuje wartość w jednym ciągu drugim ciągiem lub gdy wyodrębnia i rozkłada cały ciąg na dwa różne ciągnie. Załóżmy, że mamy ciąg „Cześć na świecie”. Łamamy i przechowujemy ten ciąg na trzy inne struny i przechowujemy go w innej zmiennej; Następnie możemy użyć metody sscanf ().

Procedura

Możemy się mylić z za pomocą funkcji scanf () i sscanf () w c. Ten artykuł rozróżni te dwie funkcje i pokaże nam składnię i metodę wdrażania metody SSCANF () za pomocą różnych przykładów. Kontynuujmy procedurę z następującymi krokami:

Składnia
Aby zaimplementować metodę sscanf (), musimy mieć pełny uchwyt w składni tej metody. Ta funkcja przyjmuje następujące argumenty, które musimy całkowicie zrozumieć:

$ int sscanf (const char * string, const char * format, [arg1, arg2,…]);

W argumentach metody sscanf () pierwszym argumentem jest znak, że wskaźnik łańcucha działa jako źródło funkcji do pobierania danych lub, innymi słowy, działa to jako bufor. Drugim argumentem jest specyfikator formatu wskazujący typ danych danych, który ma zostać przydzielony, a ostatnia to lista argumentów taka sama jak metoda scanf (). Krótko mówiąc, metoda sscanf () jest wykorzystywana specjalnie do odczytu danych z bufora i przechowywania tych danych w lokalizacjach określonych na liście argumentów, gdzie każdy argument jest zachęcany do bycia wskaźnikiem zmiennej z typem, jak określono w określonym String formatu (drugi argument).

Przykład nr 01
W tym przykładzie zaimplementujemy program, aby pokazać działanie sscanf () do odczytania strun. Aby pracować z metodą SSCANF (), musielibyśmy zaimportować następujące dwa pliki nagłówka do programów.

$ # obejmują
$ # obejmują

Dwie biblioteki z rozszerzeniem ”.h ”są reprezentowane jako pliki nagłówka. Ta pierwsza biblioteka jest dołączona do korzystania z informacji dotyczących wejścia do odczytu i wyświetlania wyświetlania w programie. Ciąg „.H ”jest używany, ponieważ ten plik nagłówka obsługuje deklarację funkcji dotyczących ciąży, pamięci i stałych. Teraz, na podstawie, zadeklarujemy i zainicjujemy ciąg wskaźnika z typem danych Char z przypisaną wartością jako „David Executive 39”. Następnie zadeklarujemy dwa pozostałe struny z nazwami, odpowiednio „oznaczeniem” i „nazwa”, mając rozmiar pamięci równy dziesięciu „10”.

Zostanie również zainicjowana kolejna zmienna z liczbą całkowitą i wiekiem nazwiska. W następnym kroku wywołamy metodę sscanf () i odczytujemy dane z już zadeklarowanego i zainicjowanego ciągu typu wskaźnika. Deklarowany ciąg „David Executive 39” ma trzy różne elementy: nazwa, wiek i oznaczenie. Przeczytamy je, postępując zgodnie z tą samą procedurą, co Scanf (), gdzie przeczytamy informacje, przekazując specyfikator formatu dla tej informacji o jego nazwie.

Zostanie to zrobione na liście argumentów metody Sscanf () jako sscanf (ciąg, „ %s %s %d”, nazwa, oznaczenie i wiek), a następnie zapisamy ją w innej zmiennej z typem danych jako ” int ”. Zgodnie z krokami wyodrębniliśmy trzy różne informacje z jednego ciągu. Teraz wyświetlimy te trzy elementy w wyjściu, wywołując metodę printf ().

#włączać
#włączać
int main ()

Char* String = "David Executive 28";
Nazwa char [10], oznaczenie [10];
Int Age, ekstrakt;
ekstrakt = sscanf (ciąg, „ %s %s %d”, nazwa, oznaczenie i wiek);
printf („Nazwa: %s \ n”, nazwa);
printf („Oznaczenie: %s \ n”, oznaczenie);
printf („wiek: %d \ n”, wiek);
powrót 0;

Wyjście przedstawia, że ​​wyodrębniliśmy z jednego ciąg bufora Trzy informacje i zapisaliśmy je w określonych lokalizacjach listy argumentów jako nazwy, oznaczenia i wieku za pomocą metody sscanf ().

Przykład nr 02
Zaimplementujemy kolejny przykład metody sscanf () w celu wyodrębnienia ciągów z drugiego ciągu. Po pierwsze, zaimportujemy wymagane biblioteki, w następujący sposób:

$ # obejmują
$ #include
$ #include

Biblioteki te automatycznie zawierają w programie funkcje niezbędne, sscanf i scanf (). W poprzednim przykładzie wykorzystaliśmy Char do wskaźnika ciągów typu, który działał jako bufor lub źródło, abyśmy mogli odzyskać z niego dane. Ale w tym przykładzie po prostu zadeklarujemy ciąg za pomocą strcpy (String_name, „String”). Następnie użyjemy tego ciągu jako pierwszego argumentu metody sscanf () do użycia go jako bufora, aby można go było odczytać w celu wyodrębnienia informacji z strcpy () i przechowywania w lokalizacji określonej przez listę argumentów. Po przechowywaniu informacji w odpowiednich lokalizacjach argumentów za pomocą metody sscanf () wyświetlimy te informacje z nazwami i specyfikatorami formatowymi, wywołując metodę printf ().

#włączać
#włączać
#włączać
int main ()
Int Day, rok;
Char WeekDay [20], miesiąc [20], ciąg [100];
Strcpy (String, „Wtorek 25 października 2022”);
sscanf (ciąg, „ %s %s %d %d”, dzień powszedni, miesiąc i dzień i rok);
printf („ %s %d, %d = %s \ n”, miesiąc, dzień, rok, dzień powszedni);
zwrot (0);

Zadeklarowaliśmy ciąg za pomocą Strcpy z łańcuchem nazwy jako wtorek, 25 października 2022 r. I przekazaliśmy ten ciąg jako ciąg bufor/źródło do funkcji Sscanf (), która wyodrębniała informacje, takie jak miesiąc, data, rok, rok i dzień zgodnie z listą argumentów. Następnie wyodrębnione informacje są wyświetlane, wywołując funkcję printf ().

Wniosek

Metoda sscanf () jest używana w języku programowania C w celu zastąpienia jednego ciągu. Aby użyć tej funkcji, należy mieć jasność na temat koncepcji listy argumentów sscanf (). W tym artykule wyraźnie wyjaśnia proces krok po kroku, który obejmuje składnię funkcji, wymagane argumenty według funkcji i gdzie możemy użyć tej funkcji, aby uzyskać dobrą logikę dla naszych programów.