Jak używać funkcji StrTOL w C ++

Jak używać funkcji StrTOL w C ++
W C ++ funkcje są używane do zwiększenia wydajności i wielokrotnego użytku programu. strtol () Funkcja jest jedną z takich funkcji, która przekształca ciąg w długą wartość liczb całkowitą. W tym artykule zrozumiemy składnię i parametry strtol () funkcjonuj i zobacz kilka przykładów jego użycia w C++.

Co to jest funkcja strtol () w c++

strtol () Funkcja jest wbudowaną funkcją w C ++, która przekształca ciąg w długą wartość liczb całkowitą. Akceptuje ciąg jako dane i przekształca go w wartość całkowitą z określoną bazą. Ponadto metoda zwraca link lub wskaźnik do początkowego niepoprawnego znaku w ciągu.

Składnia funkcji strTOL ()

Składnia strtol () Funkcja w C ++ jest następująca:

Strtol (S i End, baza)

Parametry funkcji strTOL ()

strtol () Funkcja ma trzy parametry:

  • S: Wskaźnik do łańcucha, który ma zostać przekonwertowany na długą wartość liczb całkowitą.
  • koniec: Wskaźnik do pierwszego nieprawidłowego znaku w ciągu lub do samego ciągu, jeśli nie znaleziono nieprawidłowych znaków.
  • baza: Podstawa liczby, która ma zostać przekonwertowana. Podstawa może wynosić między 2 a 36, ​​a jeśli jest ustawiona na 0, funkcja określa podstawę na podstawie prefiksu ciągu wejściowego.

Zwracaj typ funkcji strTOL ()

strtol () Funkcja zwraca długą wartość liczb całkowitą, która jest konwertowana z ciągu wejściowego. Jeśli nie nastąpi konwersja, zwraca 0.

Plik nagłówka w C ++ do użycia funkcji strTOL () w c++

Przed użyciem strtol () Funkcja w kodzie C ++, musisz zdefiniować #włączać plik nagłówka.

Przykłady funkcji strTOL () w C++

Oto kilka przykładów używania strtol () funkcja w c++.

Przykład 1: Program do konwersji łańcucha na długie liczby całkowite za pomocą bazy dziesiętnej

Z strtol () Funkcja, łatwo jest przekonwertować ciąg na długą liczbę całkowitą za pomocą bazy dziesiętnej. Kod potrzebnego C ++ w takiej sytuacji pokazano poniżej.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
char str [] = "12345678";
char* endptr;
długie num = strTol (str, i endptr, 10);
if (endptr == str)
Cout<<"Invalid input"< w przeciwnym razie
Cout<<"The number is: "<
powrót 0;

Powyższy program deklaruje tablicę znaków o nazwie STR, który zawiera ciąg „12345678”. Wskaźnik o nazwie EndPtr służy do przechowywania adresu pierwszego znaku w ciągu, który nie jest częścią przekonwertowanej liczby. strtol () Następnie funkcja jest wywoływana z STR, i EndPTR i 10. Pierwszym argumentem jest ciąg, który zostanie przekonwertowany, drugim argumentem jest adres wskaźnika, który zostanie zaktualizowany o pozycję końcową ciągu, a trzeci argument jest podstawą konwersji, która jest dziesiętna w tym przypadku.

Program sprawdza, czy EndPtr jest równy początkowi ciągu. Jeśli tak, oznacza to, że konwersja się nie powiodła, a komunikat o błędzie jest wydrukowany. W przeciwnym razie program drukuje przekonwertowany numer.

Wyjście

Przykład 2: Program do konwersji ciągów na długie liczby całkowite z 0 podstawami

Jeśli ustalimy podstawowy argument strtol () funkcja do 0, funkcja automatycznie wykryje podstawę z ciągu wejściowego. Ułatwia to konwertowanie ciągów różnych podstaw bez konieczności wyraźnego określenia podstawy. Na przykład, jeśli ciąg zaczyna się od łańcucha „0x”, Jest to automatycznie wykrywane jako liczba szesnastkowa.

Za pomocą strtol () funkcja do konwersji ciągów na długie liczby całkowite z 0 podstawami, możemy upewnić się, że ciąg wejściowy jest prawidłowy i można go poprawnie przekonwertować na długą liczbę całkowitą. Może to być pomocne w wielu rodzajach implementacji, takich jak odczyt wartości liczbowych z danych wejściowych użytkownika lub analiza informacji z dokumentów tekstowych.

Program podany poniżej jest dobrze zgodnie z wcześniej określoną sytuacją.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
char str [] = "0xa0b0c0";
char* endptr;
długie num = strTol (str, i endptr, 0);
if (endptr == str)
Cout<<"Invalid input"< w przeciwnym razie
Cout<<"The number is: "<
powrót 0;

Powyższy program deklaruje tablicę znaków o nazwie str, który zawiera ciąg „0xA0B0C0”. „0x” Prefiks wskazuje, że ciąg jest w formacie szesnastkowym. Wskaźnik o nazwie EndPtr jest również zadeklarowane, które zostaną użyte do przechowywania adresu pierwszego znaku w ciągu, który nie jest częścią przekonwertowanej liczby. strtol () Następnie funkcja jest wywoływana z STR, i endptr argumentu i 0. Podstawa konwersji, która jest ustawiona na 0, automatycznie wykrywa podstawę z ciągu wejściowego.

Program sprawdza, czy EndPtr jest równy początkowi ciągu. Jeśli tak, oznacza to, że konwersja się nie powiodła, a komunikat o błędzie jest wydrukowany. W przeciwnym razie program drukuje przekonwertowany numer.

Wyjście

Wniosek

W c++, strtol () Funkcja jest używana do konwersji łańcucha w długą wartość całkowitą. Postępując zgodnie z powyższymi wytycznymi, będziesz mógł nauczyć się korzystania z strtol () Funkcja w C ++, ponieważ znajdziesz różne przykłady, które pomogą ci zrozumieć podstawy tej funkcji.