Wednesday 6 February 2019

C++ Convert String to Int

There are two common methods to convert strings to numbers:
Using stringstream class or sscanf()
stringstream() : This is an easy way to convert strings of digits into ints, floats or doubles. Following is a sample program using a stringstream to convert string to int.

// A program to demonstrate the use of stringstream 
#include <iostream> 
#include <sstream> 
using namespace std; 
  
int main() 
{ 
    string s = "12345"; 
  
    // object from the class stringstream 
    stringstream geek(s); 
  
    // The object has the value 12345 and stream 
    // it to the integer x 
    int x = 0; 
    geek >> x; 
  
    // Now the variable x holds the value 12345 
    cout << "Value of x : " << x; 
  
    return 0; 
}
 — — — — — — — — — — 
#include<stdio.h> 
int main() 
{ 
    const char *str = "12345"; 
    int x; 
    sscanf(str, "%d", &x); 
    printf("\nThe value of x : %d", x); 
    return 0; 
}
 — — — — — — — — — — 
// C++ program to demonstrate working of stoi() 
// Work only if compiler supports C++11 or above. 
#include <iostream> 
#include <string> 
using namespace std; 
  
int main() 
{ 
    string str1 = "45"; 
    string str2 = "3.14159"; 
    string str3 = "31337 geek"; 
  
    int myint1 = stoi(str1); 
    int myint2 = stoi(str2); 
    int myint3 = stoi(str3); 
  
    cout << "stoi(\"" << str1 << "\") is "
         << myint1 << '\n'; 
    cout << "stoi(\"" << str2 << "\") is "
         << myint2 << '\n'; 
    cout << "stoi(\"" << str3 << "\") is "
         << myint3 << '\n'; 
  
    return 0; 
}
 — — — — — — — — — — — 
// For C++11 above 
#include <iostream> 
#include <cstdlib> 
using namespace std; 
   
int main() 
{ 
    const char *str1 = "42"; 
    const char *str2 = "3.14159"; 
    const char *str3 = "31337 geek"; 
     
    int num1 = atoi(str1); 
    int num2 = atoi(str2); 
    int num3 = atoi(str3); 
    
    cout << "atoi(\"" << str1  
              << "\") is " << num1 << '\n'; 
    cout << "atoi(\"" << str2  
              << "\") is " << num2 << '\n'; 
    cout << "atoi(\"" << str3  
              << "\") is " << num3 << '\n'; 
     
   return 0; 
}

No comments:

Post a Comment