Jak przekonwertować ciąg na int w C ++

Jak przekonwertować ciąg na int w C ++
Deklaracja typu danych zmiennej jest obowiązkowa w C ++, ponieważ jest to język silnie wpisany. Czasami konieczne jest zmiana danych zmiennej z jednego typu na inny typ dla celu programowania, takiego jak String to Int lub Int na String. Ten rodzaj konwersji można wykonać w C ++ za pomocą różnych rodzajów wbudowanych funkcji. W tym samouczku pokazano różne sposoby konwersji łańcucha na int w C ++.

Warunek wstępny:

Przed sprawdzeniem przykładów tego samouczka musisz sprawdzić, czy kompilator G ++ jest zainstalowany lub nie w systemie. Jeśli używasz kodu Visual Studio, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C ++, aby utworzyć kod wykonywalny. Tutaj aplikacja kodu Visual Studio została użyta do kompilacji i wykonania kodu C ++.

Korzystanie z funkcji ATOI ():

Funkcja ATOI () służy do zwrócenia liczby poprzez konwersję ciągu utworzonego przez tablicę charytatyczną na liczbę całkowitą. cstdlib Plik nagłówka jest wymagany, aby dołączyć do użycia tej funkcji.

Składnia:

int atoi (const char *str)

Utwórz plik C ++ z następującym kodem, aby przekonwertować ciąg liczb na liczbę całkowitą za pomocą funkcji ATOI (). Tutaj, Strcpy () Funkcja została użyta do konwersji łańcucha na tablicę char. Wartość ciągu wejściowego przekonwertowała na tablicę char, a wartość konwertowana została użyta w funkcji ATOI (), aby uzyskać wartość liczb całkowitą ciągu. Następnie przekonwertowana liczba całkowita zostanie wydrukowana, jeśli konwersja zostanie wykonana poprawnie.

// dołącz do drukowania wyjścia
#włączać
// dołącz do używania funkcji ATOI ()
#włączać
// uwzględnij do używania funkcji STRCPY
#włączać
int main ()
// deklaruj zmienną ciągu
std :: String strdata;
// zadeklaruj zmienną tablicy Chracter
Char Strarr [50];
// weź numer od użytkownika
STD :: Cout<// Konwertuj ciąg na tablicę Charcater
Strcpy (Strarr, strdata.c_str ());
// Przekształć tablicę znaków na liczbę całkowitą
int number = std :: ATOI (Strarr);
// Wydrukuj numer
STD :: Cout<<"The converted number is = "<<
numer <<'\n';
powrót 0;

Wyjście:

Pojawi się następujące dane wyjściowe, jeśli 6090 jest traktowany jako wejście po wykonaniu kodu.

Za pomocą funkcji sttoi ():

Funkcja ATOI () służy do zwrócenia liczby poprzez przekształcenie wartości ciągu na liczbę całkowitą. Pierwszy argument tej funkcji jest obowiązkowy, a inne argumenty są opcjonalne. Składnia tej funkcji podano poniżej.

Składnia:

int sttoi (const string & str, size_t* idx = 0, int base = 10)

Utwórz plik C ++ z następującym kodem, aby przekonwertować ciąg na liczbę całkowitą za pomocą funkcji sttoi (). Po wykonaniu kodu wartość wejściowa pobrana od użytkownika zostanie przekonwertowana na liczbę i wydrukowana, jeśli wartość wejściowa jest prawidłowym numerem. Jeśli wartość wejściowa zawiera jakikolwiek znak alfabetowy lub nie-numeryczny, wówczas błędny argument wyjątek zostanie wygenerowany, a komunikat o błędzie zostanie wydrukowany.

// dołącz do drukowania wyjścia
#włączać
int main ()

// deklaruj zmienną ciągu
std :: String strdata;
// weź numer od użytkownika
STD :: Cout<// Konwertuj ciąg na numer z obsługą błędów
próbować
// Konwertuj ciąg na liczbę całkowitą
int number = std :: sttoi (strdata);
// Wydrukuj przekonwertowany numer
STD :: Cout<<
„Konwertowana liczba to =”<<
numer <<'\n';

// Obsisz błąd, jeśli podano nieprawidłowy numer
catch (std :: invalid_argument const & e)
STD :: Cout<<"Input value is not a number.\n";

powrót 0;

Wyjście:

Pojawi się następujące dane wyjściowe, jeśli 4577 jest traktowany jako wejście po wykonaniu kodu.

Pojawi się następujące dane wyjściowe, jeśli Witam jest traktowany jako wejście po wykonaniu kodu.

Za pomocą strumieni ciągów:

Za pomocą IstringStream () Funkcja to kolejny sposób konwersji ciągu na liczbę całkowitą za pomocą operatora „>>”. Utwórz plik C ++ z następującym kodem, aby przekonwertować dane ciągów na liczbę całkowitą za pomocą za pomocą IstringStream () funkcjonować. Wartość ciągu liczb została przypisana do zmiennej ciągu w kodzie, która została użyta jako wartość argumentu iSstringStream () funkcjonować. Następnie wydrukowano przekonwertowaną wartość całkowitą.

// dołącz do drukowania wyjścia
#włączać
// uwzględnij do korzystania z funkcji isTringStream ()
#włączać
int main ()

// deklaruj zmienną ciągu
std :: String strdata = "12345";
// deklaruj zmienną całkowitą
liczba int;
// Konwertuj ciąg na liczbę całkowitą
std :: IstingStream (strData) >> Numer;
// Wydrukuj przekonwertowany numer
STD :: Cout<<"The converted number is = "<<
numer <<'\n';
powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu kodu.

Za pomocą funkcji sscanf ():

Za pomocą sscanf () Funkcja to kolejny sposób na konwersję łańcucha na liczbę całkowitą. cstdio Plik nagłówka musi uwzględnić do użycia tej funkcji. Utwórz plik C ++ z następującym kodem, aby przekonwertować wartość ciągu na liczbę całkowitą za pomocą sscanf () funkcjonować. Po wykonaniu skryptu wartość ciągu zostanie pobrana od użytkownika. Jeśli wartość wejściowa jest prawidłową wartością liczbową, wartość wejścia zostanie przekonwertowana na liczbę całkowitą i wydrukowana; W przeciwnym razie zostanie wydrukowany komunikat o błędzie.

// dołącz do drukowania wyjścia
#włączać
// uwzględnij do używania funkcji sscanf ()
#włączać
int main ()
// deklaruj zmienną ciągu
std :: String strdata;
// deklaruj zmienną całkowitą
liczba int;
// weź numer od użytkownika
STD :: Cout<if (sscanf (strdata.c_str (), „%d” i liczba) == 1)
// Wydrukuj przekonwertowany numer
STD :: Cout<<"The converted number is = "<< number <<'\n';

w przeciwnym razie
// Wydrukuj komunikat o błędzie
STD :: Cout<<"Input value is not a number.\n";

powrót 0;

Wyjście:

Pojawi się następujące dane wyjściowe, jeśli 78325 jest traktowany jako wejście po wykonaniu kodu.

Używanie do pętli:

Poniższy przykład pokazuje, jak przekonwertować wartość ciągu na wartość całkowitą bez użycia wbudowanej funkcji. Utwórz plik C ++ z następującym kodem, aby przekonwertować wartość ciągu na numer liczby całkowitej za pomocą 'Do' pętla. Wartość ciągu liczby została przypisana do zmiennej, która została użyta w ''Do„pętla, aby przekonwertować ciąg na liczbę całkowitą.

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

// deklaruj zmienną ciągu
std :: String strdata = "6000";
// deklaruj zmienną całkowitą
liczba int;
// Konwertuj ciąg na liczbę całkowitą
dla (char: strdata)
if (chr> = '0' && chr<= '9')
liczba = liczba * 10 + (chr - '0');

// Wydrukuj przekonwertowany numer
STD :: Cout<<"The converted number is = "<<
numer <<'\n';
powrót 0;

Wyjście:

Pojawi się następujące dane wyjściowe, jeśli 6000 jest traktowany jako wejście po wykonaniu kodu.

Wniosek:

Pięć różnych sposobów konwersji łańcucha na liczbę zostało opisanych w tym samouczku za pomocą prostych przykładów pomagania czytelnikom poznania sposobu konwersji dowolnego ciągu na liczbę całkowitą w programowaniu C ++.