Hi All,
I want to convert char * to int.
Plz help me out.
Thanks in advance.
What exactly do you mean?
Do you
a) want to convert an array of ASCII characters into an int:
char *numstr = "1234";
int val = atoi(numstr); // val now = 1234
b) convert the pointer to an int:
char *xyz; // given contents somewhere
int addr = (int)xyz; // addr now = the char pointer
Thanks a lot for your Rply..i will be using atoi().
And it worked for me. :)
Don't use atoi() - here's how to do it in C++
#include <sstream>
#include <iostream>
int main()
{
const char* foo("1234");
std::stringstream ss(foo);
int i;
if( ss >> i )
std::cout << "i is: " << i ;
else
std::cout << "error";
}
The reason for using stringstreams is that your conversion will fail if the string contains anything which can't be converted to an int - which, if you're dealing with user input, is a real problem. if you use a stringstream, you can detect the error, without it messing up the rest of the program.
Don't use atoi()
Why?
I suppose I should add that atoi() has no reliable way of handling any errors that might be thrown up when your conversion fails. This is where stringstreams provide a far more robust solution, that you can test for failure before using the retrieved value.
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.