Sai A Sai A
Updated date Mar 01, 2024
In this blog, we will explore various methods for converting strings to long integers in C, providing code examples, and explanations.

Introduction:

In programming, it is common to encounter situations where you need to convert a string to a long integer. This process is important for handling user input, reading data from files, or communicating with external systems. In C, there are multiple methods to perform this conversion efficiently. In this blog, we will explore various techniques for converting a string to a long integer in C.

Method 1: Using strtol() Function

The strtol() function in C is a easy tool for converting strings to long integers. Here's how it works:

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

int main() {
    char str[] = "123456";
    char *ptr;
    long num;

    // Convert string to long
    num = strtol(str, &ptr, 10);

    // Check for errors
    if (*ptr != '\0') {
        printf("Conversion failed. Invalid character: %c\n", *ptr);
        return EXIT_FAILURE;
    }

    // Print the converted long integer
    printf("Converted number: %ld\n", num);

    return EXIT_SUCCESS;
}

Output:

Converted number: 123456
  • We include the necessary headers <stdio.h> and <stdlib.h> for standard input/output and memory allocation functions.
  • The string "123456" is assigned to the str array.
  • The strtol() function converts the string str to a long integer. The third argument 10 specifies base 10 for decimal conversion.
  • If the conversion fails (due to invalid characters), the function sets the ptr pointer to the first invalid character encountered. We check for this condition and handle it accordingly.
  • Finally, the converted long integer is printed to the console.

Method 2: Using atol() Function

Another straightforward method to convert a string to a long integer is by using the atol() function:

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

int main() {
    char str[] = "987654";
    long num;

    // Convert string to long
    num = atol(str);

    // Print the converted long integer
    printf("Converted number: %ld\n", num);

    return EXIT_SUCCESS;
}

Output:

Converted number: 987654
  • We include the required headers <stdio.h> and <stdlib.h>.
  • The string "987654" is stored in the str array.
  • The atol() function converts the string str to a long integer directly without error checking.
  • The converted long integer is then printed to the console.

Conclusion:

In this blog, we have explored two common methods for converting a string to a long integer in C. We discussed the usage of the strtol() function, which provides more flexibility with error handling, and the atol() function, which offers a simpler approach. 

Comments (0)

There are no comments. Be the first to comment!!!