In the C standard library, what does the function gcvt do?
-
AConvert vector to integer value
-
BConvert floating-point number to a string
-
CConvert a 2D array into a 1D array
-
DConvert a multidimensional array to 1D
-
ENone of the above
Answer
Correct Answer: Convert floating-point number to a string
Explanation
Introduction / Context:Several C library functions convert numbers to strings. Knowing what functions like gcvt, ecvt, fcvt, and sprintf do helps when formatting numeric output without printf.
Given Data / Assumptions:
- We are discussing the classic (non-ISO) function gcvt available on many systems.
- Input: a floating-point number and a precision.
- Output: a C-string representation.
Concept / Approach:gcvt converts a double value to a C-string using a specified number of significant digits, choosing either fixed-point or exponential notation to best represent the value. While not part of the C11/C18 standard, it remains widely implemented for legacy code.
Step-by-Step Solution:Call gcvt(double value, int ndigit, char *buf).It writes a null-terminated string representing value with ndigit significant digits into buf.The result can be printed or stored for later use.
Verification / Alternative check:Compare with snprintf for portable code: snprintf(buf, sz, "%.*g", ndigit, value) offers a standard-compliant equivalent behavior.
Why Other Options Are Wrong:Vector/array conversions are unrelated to gcvt.
Common Pitfalls:Assuming gcvt is always available; for portability, prefer snprintf with the %g or %e/%f formats.
Final Answer:Convert floating-point number to a string