En aquesta secció es discutiran els diferents mètodes per convertir les dades de cadena donades en un nombre enter mitjançant el llenguatge de programació C++. Hi ha algunes situacions o casos en què hem de convertir certes dades a un altre tipus, i una d'aquestes situacions és convertir string en dades int en programació.
Per exemple, tenim una cadena numèrica com ' 143 ', i volem convertir-lo en un tipus numèric. Hem d'utilitzar una funció que converteixi una cadena en un enter i retorni les dades numèriques com a 143. Ara, aprendrem cada mètode que ajudi a convertir les dades de la cadena en nombres enters en el llenguatge de programació C++.
Diferents mètodes per convertir les dades de la cadena en nombres enters en el llenguatge de programació C++.
- Utilitzant la classe stringstream
- Utilitzant la funció stoi().
- Utilitzant la funció atoi().
- Utilitzant la funció sscanf().
Utilitzant la classe stringstream
El corrent de corda és una classe utilitzada per convertir una cadena numèrica a un tipus int. La classe stringstream declara un objecte de flux per inserir una cadena com a objecte de flux i després extreu les dades senceres convertides en funció dels fluxos. La classe stringstream té operadors '<>', que s'utilitzen per obtenir dades de l'operador esquerre (<>).
Creem un programa per demostrar la classe stringstream per convertir les dades de string en un nombre enter en el llenguatge de programació C++.
cadena a la data
Programa 1.cpp
#include #include // use stringstream class using namespace std; int main() { string str1 = '143'; // 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 <> intdata; // fetch integer type data cout << ' The string value is: ' << str1 << endl; cout << ' The representation of the string to integer type data is: ' << intdata << endl; return 0; }
Sortida
The string value is: 143 The representation of the string to integer type data is: 143
Al programa anterior, utilitzem la classe stringstream per crear un objecte obj i ajuda a convertir les dades de cadena en un nombre enter. A continuació, utilitzem l'operador '<>' per extreure la cadena convertida d'obj en dades numèriques.
Utilitzant la funció sscanf().
Una funció sscanf() converteix una cadena determinada en un tipus de dades especificat com un nombre enter.
Sintaxi
sccanf ( str, %d, &intvar);
La funció sscanf() té tres arguments per especificar la cadena de caràcters (str), l'especificador de dades (%d) i la variable entera (&intvar) per emmagatzemar la cadena convertida.
canyella vs mate
Algorisme de la funció sscanf().
- La funció sscanf() pertany a la classe stringstream, de manera que hem d'importar la classe al nostre programa.
- Inicialitzar una cadena de caràcters constant str.
- Creeu una variable entera per mantenir la cadena convertida en valors enters.
- Passeu la variable de cadena a la funció sscanf() i assigneu la funció sscanf() a la variable entera per emmagatzemar el valor sencer generat per la funció.
- Imprimeix els valors enters.
Considerem un exemple per utilitzar la funció sscanf() per convertir la cadena en nombre numèric en C++.
Programa2.cpp
#include #include // use stringstream class using namespace std; int main () { // declare the character strings const char *str1 = '555'; const char *str2 = '143'; const char *str3 = '101'; // 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, '%d', &numdata1); cout <<' 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'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 = '108'; string strdata2 = '56.78'; string strdata3 = '578 Welcome'; // 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 << ' The conversion of string to an integer using stoi('' << strdata1 << '') is ' << intdata1 <<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('108') is 108 The conversion of string to an integer using stoi('56.78') is 56 The conversion of string to an integer using stoi('578 Welcome') 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'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 = '256'; const char *strdata2 = '16.18'; const char *strdata3 = '1088 Good Bye'; // 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 << ' The conversion of string to an integer value using atoi('' << strdata1 << '') is ' << intdata1 <<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('256') is 256 The conversion of string to an integer value using atoi('16.18') is 16 The conversion of string to an integer value using atoi('1088 Good Bye') is 1088 </pre> <hr></endl;></pre></endl;></pre></'>
Utilitzant la funció stoi().
La funció stoi() converteix les dades d'una cadena en un tipus enter passant la cadena com a paràmetre per retornar un valor enter.
Sintaxi
stoi(str);
La funció stoi() conté un argument str. La cadena str es passa dins de la funció stoi() per convertir les dades de la cadena en un valor enter.
Algorisme de la funció stoi().
- Inicialitzeu la variable de cadena per emmagatzemar valors de cadena.
- Després d'això, crea una variable de tipus enter que emmagatzema la conversió de la cadena en dades de tipus enter mitjançant la funció stoi().
- Imprimeix el valor de la variable enter.
Creem un programa per utilitzar la funció stoi() per convertir el valor de la cadena en el tipus enter en el llenguatge de programació C++.
Programa 3.cpp
#include #include using namespace std; int main () { string strdata1 = '108'; string strdata2 = '56.78'; string strdata3 = '578 Welcome'; // 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 << ' The conversion of string to an integer using stoi('' << strdata1 << '') is ' << intdata1 <<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('108') is 108 The conversion of string to an integer using stoi('56.78') is 56 The conversion of string to an integer using stoi('578 Welcome') 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'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 = '256'; const char *strdata2 = '16.18'; const char *strdata3 = '1088 Good Bye'; // 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 << ' The conversion of string to an integer value using atoi('' << strdata1 << '') is ' << intdata1 <<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('256') is 256 The conversion of string to an integer value using atoi('16.18') is 16 The conversion of string to an integer value using atoi('1088 Good Bye') is 1088 </pre> <hr></endl;></pre></endl;>
Utilitzant la funció atoi().
S'utilitza una funció atoi() per convertir la cadena de caràcters en un valor enter. Una funció atoi() passa la cadena de tipus de caràcter per retornar les dades senceres.
Sintaxi
atoi (const char *str);
Algorisme de la funció atoi().
- Inicialitzeu una matriu de caràcters de tipus punter per emmagatzemar una cadena.
- Després d'això, crea una variable de tipus enter que emmagatzema la conversió de la cadena en dades de tipus enter mitjançant la funció atoi().
- Imprimeix el valor de la variable enter.
Creem un programa per utilitzar la funció atoi() per convertir el valor de la cadena en el tipus enter en el llenguatge de programació C++.
alinear la imatge CSS
Programa 4.cpp
#include #include using namespace std; int main () { // declare a constant character array of string const char *strdata1 = '256'; const char *strdata2 = '16.18'; const char *strdata3 = '1088 Good Bye'; // 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 << ' The conversion of string to an integer value using atoi('' << strdata1 << '') is ' << intdata1 <<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('256') is 256 The conversion of string to an integer value using atoi('16.18') is 16 The conversion of string to an integer value using atoi('1088 Good Bye') is 1088 </pre> <hr></endl;>
'>