Hi All,

I want to convert char * to int.

Plz help me out.

Thanks in advance.

Recommended Answers

All 6 Replies

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 ;
        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.

commented: great post +6

Don't use atoi()


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.

> Why?

commented: Good link, would have saved me the typing. +3
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.