954,487 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

how to convert char to int

hi there, i just want to know what function to use in converting a char into an int
like:

char temp;
cout << "enter something";
cin >> temp;

atoi(temp);


is this the right way?

jaepi
Practically a Master Poster
647 posts since Jul 2006
Reputation Points: 32
Solved Threads: 4
 

>>is this the right way?
No because atoi() takes a pointer to a null-terminated string and your variable temp is just a single character.

The quickest way is to simply subtract the ascii value of '0' from it like this: int n = temp - '0'; . Why does that work? Its because a char is a small integer and if you look at an ascii chart you will see that all characters have an ascii numerical value. Internally, programs know nothing at all about characters, only numeric values as shown in that ascii chart.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

thank you for that detailed explanation..

jaepi
Practically a Master Poster
647 posts since Jul 2006
Reputation Points: 32
Solved Threads: 4
 

Why atoi is bad...

strtol is what you should be looking for.

~s.o.s~
Failure as a human
Administrator
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
 

hi there, i just want to know what function to use in converting a char into an int like:

char temp;
cout << "enter something";
cin >> temp;

atoi(temp);

is this the right way?

yes that is a correct way u can proceed.........
but the only thing u need to do is that u should use char array in place of char variable, and the function atoi is return an int value so u should store the result in some integer variable.
like

char temp[10]="10";
int i;
i=atoi(temp)*2;
cout<<i; \\ the output = 20;
rajenpandit
Newbie Poster
14 posts since Aug 2008
Reputation Points: 9
Solved Threads: 1
 

> yes that is a correct way u can proceed.........
Over a year late, and still you missed the better answer from ~s.o.s~

Salem
Posting Sage
Team Colleague
11,531 posts since Dec 2005
Reputation Points: 5,862
Solved Threads: 953
 

It seems this zombi thread was started by incorrect and unclear question then proceeded with answers to another hypothetical questions and now start the next bla bla bla loop... ;)

That's my deposit in the discussion of char to int promotion...

ArkM
Postaholic
2,001 posts since Jul 2008
Reputation Points: 1,234
Solved Threads: 348
 

Or you can download this header and include it, and to use the functions, do this:

int i;
string s;
cin>>s;
i=c2a<int>(s)
Mahkoe
Newbie Poster
9 posts since Nov 2010
Reputation Points: 6
Solved Threads: 0
 
> yes that is a correct way u can proceed......... Over a year late, and still you missed the better answer from ~s.o.s~


Let's add another 3 years to that.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,505 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You