I got a question about c++ strings.

Let's say string text = "0R14"

and I access each element using text[0],text[1] etc

does text[0] return an integer 0? or a character '0'?

if it doesn't return an integer, how do I convert individual string element to integer type if I need to do integer calculations?

Recommended Answers

All 4 Replies

atoi("0");
(int ) text[0]-48

will atoi(text[0]) work too?
because doing atoi("0") is hardcoding....

atoi(text[0]) will not work because atoi expects a char*, not a char. That half of NeoKyrgyz's answer was basically useless and dumb.

If you want to convert the character "c" representing the decimal digit n to the integer n, you can do so with (c - '0') . That's the same as what NeoKyrgyz said, because '0' is just a fancy way of writing 48 . You'll note that '0' == 48, '1' == 49, ..., '9' == 57. If text is a string containing "0R14", then text[0] will evaluate to 48.

atoi is for converting c-style strings containing sequences of digits into numbers, e.g. "123" -> 123

thanks alot for explaining!

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.