It converts a string representing a number into its integer value, ignoring leading spaces and handling optional '+' or '-' signs.
Click to reveal answer
beginner
How does atoi handle leading spaces in the input string?
It skips all leading whitespace characters before processing the number.
Click to reveal answer
intermediate
What should atoi do if the string contains non-digit characters after the number?
It stops parsing at the first non-digit character and returns the integer parsed so far.
Click to reveal answer
intermediate
How does atoi handle integer overflow or underflow?
It clamps the result to the maximum or minimum integer value if overflow or underflow occurs.
Click to reveal answer
beginner
Why is it important to check for signs ('+' or '-') in atoi?
Because the sign determines whether the resulting integer is positive or negative.
Click to reveal answer
What does atoi return when given the string " -42abc"?
A-42
B0
C42
DError
✗ Incorrect
It skips spaces, reads the sign '-', then parses digits until non-digit 'a' stops parsing, returning -42.
If the input string is "4193 with words", what integer does atoi return?
A0
B-4193
C4193 with words
D4193
✗ Incorrect
Parsing stops at the first non-digit character after digits, so it returns 4193.
What happens if the input string to atoi is "words and 987"?
A987
B0
CError
D-987
✗ Incorrect
Since the string does not start with digits or sign, atoi returns 0.
How does atoi handle the string "+123"?
A-123
B0
C123
DError
✗ Incorrect
The '+' sign indicates a positive number, so it returns 123.
What should atoi return if the number exceeds the 32-bit signed integer max value?
AINT_MAX (2147483647)
B0
CINT_MIN (-2147483648)
DError
✗ Incorrect
It clamps the value to INT_MAX to avoid overflow.
Explain step-by-step how to convert the string " -123abc" to an integer using the atoi logic.
Think about how you read the string from left to right.
You got /6 concepts.
Describe how to handle integer overflow when converting a string to an integer.
Consider the limits of 32-bit signed integers.
You got /4 concepts.
Practice
(1/5)
1. What does the atoi function do in C++?
easy
A. Converts a string representing a number into an integer
B. Converts an integer into a string
C. Sorts characters in a string alphabetically
D. Calculates the length of a string
Solution
Step 1: Understand the purpose of atoi
The function atoi stands for ASCII to integer and converts a numeric string to an integer value.
Step 2: Differentiate from other string functions
It does not convert integers to strings, sort strings, or calculate string length.
Final Answer:
Converts a string representing a number into an integer -> Option A
Quick Check:
atoi = string to int conversion [OK]
Hint: Remember atoi means ASCII to integer conversion [OK]
Common Mistakes:
Confusing atoi with itoa (integer to string)
Thinking atoi sorts or measures strings
Assuming atoi handles non-numeric strings safely
2. Which of the following is the correct syntax to use atoi in C++?
easy
A. int num = atoi("1234");
B. int num = atoi(1234);
C. int num = atoi('1234');
D. int num = atoi(\"1234\");
Solution
Step 1: Check the parameter type for atoi
The atoi function expects a C-style string (const char*), so the argument must be a string literal like "1234".
Step 2: Analyze each option
int num = atoi("1234"); passes a string literal correctly. int num = atoi(1234); passes an integer, which is invalid. int num = atoi('1234'); uses single quotes, which denote a char, not a string. int num = atoi(\"1234\"); has escaped quotes incorrectly.
Final Answer:
int num = atoi("1234"); -> Option A
Quick Check:
atoi needs a string literal argument [OK]
Hint: atoi requires a string literal, not a number or char [OK]
Common Mistakes:
Passing integer instead of string
Using single quotes instead of double quotes
Incorrect escaping of quotes
3. What will be the output of the following C++ code?
char str[] = "-42abc";
int val = atoi(str);
std::cout << val << std::endl;
medium
A. 0
B. Runtime error
C. 42
D. -42
Solution
Step 1: Understand atoi behavior with non-digit characters
atoi converts the initial part of the string that forms a valid integer. It stops reading when it encounters a non-digit after the number.
Step 2: Analyze the string "-42abc"
It starts with '-', then '4', '2' which form -42. The characters 'a', 'b', 'c' are ignored after the number.
Final Answer:
-42 -> Option D
Quick Check:
atoi stops at first non-digit after number [OK]
Hint: atoi reads number until non-digit character [OK]
Common Mistakes:
Expecting atoi to parse entire string including letters
Assuming atoi returns 0 for strings with trailing letters
Thinking it throws runtime error on letters
4. Identify the error in the following code snippet that uses atoi:
std::string s = "123";
int num = atoi(s);
std::cout << num << std::endl;
medium
A. Missing header file for atoi
B. atoi requires integer argument
C. Cannot pass std::string directly to atoi
D. No error, code runs fine
Solution
Step 1: Check parameter type for atoi
atoi expects a C-style string (const char*), but s is a std::string object.
Step 2: Correct usage
To use atoi with std::string, call s.c_str() to get a C-style string.
Final Answer:
Cannot pass std::string directly to atoi -> Option C
Quick Check:
atoi needs const char*, not std::string [OK]
Hint: Use s.c_str() to convert std::string for atoi [OK]
Common Mistakes:
Passing std::string directly to atoi
Ignoring need for c_str() method
Assuming atoi accepts std::string
5. You want to convert a string to integer but also handle invalid inputs safely without crashing. Which approach is best in C++?
hard
A. Use atoi and check if result is zero to detect errors
B. Use stoi inside try-catch block to catch exceptions
C. Use atoi and ignore invalid inputs
D. Use printf to print the string and guess the number
Solution
Step 1: Understand limitations of atoi
atoi returns 0 for invalid inputs but cannot distinguish between actual zero and error, so it is unsafe for error handling.
Step 2: Use stoi with exception handling
stoi throws exceptions on invalid input, allowing safe detection and handling of errors using try-catch blocks.
Final Answer:
Use stoi inside try-catch block to catch exceptions -> Option B
Quick Check:
stoi with try-catch is safe for invalid input [OK]
Hint: Use stoi with try-catch for safe string to int conversion [OK]
Common Mistakes:
Relying on atoi to detect invalid input
Ignoring exceptions from stoi
Using printf to guess numbers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.