logo

Převést řetězec na celé číslo v C++

Tato část se bude zabývat různými metodami převodu dat daného řetězce na celé číslo pomocí programovacího jazyka C++. Existují některé situace nebo případy, kdy potřebujeme převést určitá data na jiný typ, a jednou z takových situací je převod řetězců na data int v programování.

Například máme číselný řetězec jako „ 143 ', a chceme jej převést na číselný typ. Musíme použít funkci, která převede řetězec na celé číslo a vrátí číselná data jako 143. Nyní se naučíme každou metodu, která pomáhá převádět data řetězce na celá čísla v programovacím jazyce C++.

Převést řetězec na celé číslo v C++

Různé metody převodu dat řetězce na celá čísla v programovacím jazyce C++.

  1. Pomocí třídy stringstream
  2. Pomocí funkce stoi().
  3. Pomocí funkce atoi().
  4. Pomocí funkce sscanf().

Pomocí třídy stringstream

The stringstream je třída používaná k převodu číselného řetězce na typ int. Třída stringstream deklaruje objekt proudu, který vloží řetězec jako objekt proudu, a poté extrahuje převedená celočíselná data na základě proudů. Třída stringstream má operátory '<>', které se používají k načítání dat z (<>) levého operátoru.

Vytvořme program pro demonstraci třídy stringstream pro převod dat řetězce na celé číslo v programovacím jazyce C++.

jmenná konvence java

Program1.cpp

 #include #include // use stringstream class using namespace std; int main() { string str1 = &apos;143&apos;; // declare a string int intdata; // declare integer variable /* use stringstream class to declare a stream object to insert a string and then fetch as integer type data. */ stringstream obj; obj &lt;&gt; intdata; // fetch integer type data cout &lt;&lt; &apos; The string value is: &apos; &lt;&lt; str1 &lt;&lt; endl; cout &lt;&lt; &apos; The representation of the string to integer type data is: &apos; &lt;&lt; intdata &lt;&lt; endl; return 0; } 

Výstup

 The string value is: 143 The representation of the string to integer type data is: 143 

Ve výše uvedeném programu používáme třídu stringstream k vytvoření objektu obj a pomáhá převádět data řetězce na celé číslo. Poté použijeme operátor '<>' k extrahování převedeného řetězce z obj na číselná data.

Pomocí funkce sscanf().

Funkce sscanf() převede daný řetězec na zadaný datový typ jako celé číslo.

Syntax

 sccanf ( str, %d, &amp;intvar); 

Funkce sscanf() má tři argumenty pro určení řetězce znaků (str), specifikátoru dat (%d) a celočíselné proměnné (&intvar) pro uložení převedeného řetězce.

Algoritmus funkce sscanf().

zarovnat css obrázek
  1. Funkce sscanf() patří do třídy stringstream, takže třídu musíme importovat do našeho programu.
  2. Inicializujte konstantní řetězec znaků str.
  3. Vytvořte celočíselnou proměnnou pro uložení převedeného řetězce na celočíselné hodnoty.
  4. Předejte řetězcovou proměnnou do funkce sscanf() a přiřaďte funkci sscanf() celočíselné proměnné, aby se uložila celočíselná hodnota generovaná funkcí.
  5. Vytiskněte celočíselné hodnoty.

Uvažujme příklad použití funkce sscanf() k převodu řetězce na číselné číslo v C++.

Program2.cpp

 #include #include // use stringstream class using namespace std; int main () { // declare the character strings const char *str1 = &apos;555&apos;; const char *str2 = &apos;143&apos;; const char *str3 = &apos;101&apos;; // declare the integer variables int numdata1; int numdata2; int numdata3; /* use sscanf() function and to pass the character string str1, and an integer variable to hold the string. */ sscanf (str1, &apos;%d&apos;, &amp;numdata1); cout &lt;<' the value of character string is: ' << str1; cout '
 representation to int numdata1 <<endl; sscanf (str2, '%d', &numdata2); <<'
 str2; numdata2 (str3, &numdata3); str3; numdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The value of the character string is: 555 The representation of string to int value of numdata is: 555 The value of the character string is: 143 The representation of string to int value of numdata is: 143 The value of the character string is: 101 The representation of string to int value of numdata is: 101 </pre> <h3>Using the stoi() function</h3> <p>The stoi() function converts a string data to an integer type by passing the string as a parameter to return an integer value.</p> <p> <strong>Syntax</strong> </p> <pre> stoi(str); </pre> <p>The stoi() function contains an str argument. The str string is passed inside the stoi() function to convert string data into an integer value.</p> <p> <strong>Algorithm of the stoi() function</strong> </p> <ol class="points"> <li>Initialize the string variable to store string values.</li> <li>After that, it creates an integer type variable that stores the conversion of string into integer type data using the stoi() function.</li> <li>Print the integer variable value.</li> </ol> <p>Let&apos;s create a program to use the stoi() function to convert the string value into the integer type in the C++ programming language.</p> <p> <strong>Program3.cpp</strong> </p> <pre> #include #include using namespace std; int main () { string strdata1 = &apos;108&apos;; string strdata2 = &apos;56.78&apos;; string strdata3 = &apos;578 Welcome&apos;; // use stoi() function to pass string as arguments int intdata1 = stoi (strdata1); int intdata2 = stoi (strdata2); int intdata3 = stoi (strdata3); // print the converted values cout &lt;&lt; &apos; The conversion of string to an integer using stoi(&apos;&apos; &lt;&lt; strdata1 &lt;&lt; &apos;&apos;) is &apos; &lt;&lt; intdata1 &lt;<endl; cout << ' the conversion of string to an integer using stoi(\'' strdata2 '\') is intdata2 <<endl; strdata3 intdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The conversion of string to an integer using stoi(&apos;108&apos;) is 108 The conversion of string to an integer using stoi(&apos;56.78&apos;) is 56 The conversion of string to an integer using stoi(&apos;578 Welcome&apos;) is 578 </pre> <h3>Using the atoi() function</h3> <p>An atoi() function is used to convert the character string into an integer value. An atoi() function passes the character type string to return the integer data.</p> <p> <strong>Syntax</strong> </p> <pre> atoi (const char *str); </pre> <p> <strong>Algorithm of the atoi() function</strong> </p> <ol class="points"> <li>Initialize a pointer-type character array to store a string.</li> <li>After that, it creates an integer type variable that stores the conversion of string into integer type data using the atoi() function.</li> <li>Print the integer variable value.</li> </ol> <p>Let&apos;s create a program to use the atoi() function to convert the string value into the integer type in the C++ programming language.</p> <p> <strong>Program4.cpp</strong> </p> <pre> #include #include using namespace std; int main () { // declare a constant character array of string const char *strdata1 = &apos;256&apos;; const char *strdata2 = &apos;16.18&apos;; const char *strdata3 = &apos;1088 Good Bye&apos;; // use atoi() function to pass character type array as arguments int intdata1 = atoi (strdata1); int intdata2 = atoi (strdata2); int intdata3 = atoi (strdata3); // print the converted values cout &lt;&lt; &apos; The conversion of string to an integer value using atoi(&apos;&apos; &lt;&lt; strdata1 &lt;&lt; &apos;&apos;) is &apos; &lt;&lt; intdata1 &lt;<endl; cout << ' the conversion of string to an integer value using atoi(\'' strdata2 '\') is intdata2 <<endl; strdata3 intdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The conversion of string to an integer value using atoi(&apos;256&apos;) is 256 The conversion of string to an integer value using atoi(&apos;16.18&apos;) is 16 The conversion of string to an integer value using atoi(&apos;1088 Good Bye&apos;) is 1088 </pre> <hr></endl;></pre></endl;></pre></'>

Pomocí funkce stoi().

Funkce stoi() převádí data řetězce na celočíselný typ předáním řetězce jako parametru, který vrátí celočíselnou hodnotu.

Syntax

 stoi(str); 

Funkce stoi() obsahuje argument str. Řetězec str je předán do funkce stoi() pro převod dat řetězce na celočíselnou hodnotu.

Algoritmus funkce stoi().

  1. Inicializujte řetězcovou proměnnou pro uložení řetězcových hodnot.
  2. Poté vytvoří proměnnou typu integer, která ukládá převod řetězce na data typu integer pomocí funkce stoi().
  3. Vytiskněte celočíselnou hodnotu proměnné.

Vytvořme program, který použije funkci stoi() k převodu hodnoty řetězce na typ celé číslo v programovacím jazyce C++.

bellfordův algoritmus

Program3.cpp

 #include #include using namespace std; int main () { string strdata1 = &apos;108&apos;; string strdata2 = &apos;56.78&apos;; string strdata3 = &apos;578 Welcome&apos;; // use stoi() function to pass string as arguments int intdata1 = stoi (strdata1); int intdata2 = stoi (strdata2); int intdata3 = stoi (strdata3); // print the converted values cout &lt;&lt; &apos; The conversion of string to an integer using stoi(&apos;&apos; &lt;&lt; strdata1 &lt;&lt; &apos;&apos;) is &apos; &lt;&lt; intdata1 &lt;<endl; cout << \' the conversion of string to an integer using stoi(\'\' strdata2 \'\') is intdata2 <<endl; strdata3 intdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The conversion of string to an integer using stoi(&apos;108&apos;) is 108 The conversion of string to an integer using stoi(&apos;56.78&apos;) is 56 The conversion of string to an integer using stoi(&apos;578 Welcome&apos;) is 578 </pre> <h3>Using the atoi() function</h3> <p>An atoi() function is used to convert the character string into an integer value. An atoi() function passes the character type string to return the integer data.</p> <p> <strong>Syntax</strong> </p> <pre> atoi (const char *str); </pre> <p> <strong>Algorithm of the atoi() function</strong> </p> <ol class="points"> <li>Initialize a pointer-type character array to store a string.</li> <li>After that, it creates an integer type variable that stores the conversion of string into integer type data using the atoi() function.</li> <li>Print the integer variable value.</li> </ol> <p>Let&apos;s create a program to use the atoi() function to convert the string value into the integer type in the C++ programming language.</p> <p> <strong>Program4.cpp</strong> </p> <pre> #include #include using namespace std; int main () { // declare a constant character array of string const char *strdata1 = &apos;256&apos;; const char *strdata2 = &apos;16.18&apos;; const char *strdata3 = &apos;1088 Good Bye&apos;; // use atoi() function to pass character type array as arguments int intdata1 = atoi (strdata1); int intdata2 = atoi (strdata2); int intdata3 = atoi (strdata3); // print the converted values cout &lt;&lt; &apos; The conversion of string to an integer value using atoi(&apos;&apos; &lt;&lt; strdata1 &lt;&lt; &apos;&apos;) is &apos; &lt;&lt; intdata1 &lt;<endl; cout << \' the conversion of string to an integer value using atoi(\'\' strdata2 \'\') is intdata2 <<endl; strdata3 intdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The conversion of string to an integer value using atoi(&apos;256&apos;) is 256 The conversion of string to an integer value using atoi(&apos;16.18&apos;) is 16 The conversion of string to an integer value using atoi(&apos;1088 Good Bye&apos;) is 1088 </pre> <hr></endl;></pre></endl;>

Pomocí funkce atoi().

Funkce atoi() se používá k převodu řetězce znaků na celočíselnou hodnotu. Funkce atoi() předává řetězec typu znaků, aby vrátila celočíselná data.

Syntax

 atoi (const char *str); 

Algoritmus funkce atoi().

  1. Inicializujte pole znaků typu ukazatel pro uložení řetězce.
  2. Poté vytvoří proměnnou typu integer, která ukládá převod řetězce na data typu integer pomocí funkce atoi().
  3. Vytiskněte celočíselnou hodnotu proměnné.

Vytvořme program, který použije funkci atoi() k převodu hodnoty řetězce na typ celé číslo v programovacím jazyce C++.

Program4.cpp

 #include #include using namespace std; int main () { // declare a constant character array of string const char *strdata1 = &apos;256&apos;; const char *strdata2 = &apos;16.18&apos;; const char *strdata3 = &apos;1088 Good Bye&apos;; // use atoi() function to pass character type array as arguments int intdata1 = atoi (strdata1); int intdata2 = atoi (strdata2); int intdata3 = atoi (strdata3); // print the converted values cout &lt;&lt; &apos; The conversion of string to an integer value using atoi(&apos;&apos; &lt;&lt; strdata1 &lt;&lt; &apos;&apos;) is &apos; &lt;&lt; intdata1 &lt;<endl; cout << \' the conversion of string to an integer value using atoi(\'\' strdata2 \'\') is intdata2 <<endl; strdata3 intdata3 return 0; } < pre> <p> <strong>Output</strong> </p> <pre> The conversion of string to an integer value using atoi(&apos;256&apos;) is 256 The conversion of string to an integer value using atoi(&apos;16.18&apos;) is 16 The conversion of string to an integer value using atoi(&apos;1088 Good Bye&apos;) is 1088 </pre> <hr></endl;>