convert string to int error checking c

To convert a string to an integer in C, you can use the atoi function from the stdlib.h library. This function takes a string as input and returns the corresponding integer value. However, it does not provide any error checking.

If you want to perform error checking while converting a string to an integer, you can use the strtol function instead. The strtol function allows you to handle errors such as invalid input or overflow.

Here's an example of how you can use the strtol function to convert a string to an integer with error checking:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "12345";
    char *endptr;
    long num;

    num = strtol(str, &endptr, 10);

    // Check for errors
    if (str == endptr) {
        printf("Invalid input\n");
    } else if (*endptr != '\0') {
        printf("Invalid characters: %s\n", endptr);
    } else if (num > INT_MAX || num < INT_MIN) {
        printf("Number out of range\n");
    } else {
        printf("The integer value is: %ld\n", num);
    }

    return 0;
}

In this example, the strtol function is used to convert the string str to a long integer. The function also takes a second argument endptr, which is a pointer to the first character that couldn't be converted. By checking the value of endptr, you can determine if any errors occurred during the conversion.

The code then checks for different error conditions. If str is equal to endptr, it means that no valid conversion could be performed. If endptr points to a character other than the null character ('\0'), it means that there are invalid characters in the string. Finally, the code checks if the resulting number is within the range of an int to detect overflow.

Feel free to modify this code according to your specific requirements.