📜  将字符串转换为 int 错误检查 - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:53:49.844000             🧑  作者: Mango

将字符串转换为 int 错误检查 - C 编程语言

在 C 语言中,将字符串转换为整数是一个常见的操作。使用 atoi() 函数可以将字符串转换为整数,但是如果字符串不是有效的整数表示,则可能会导致不可预测的结果。因此,在进行字符串转换时,错误检查是非常必要的。

错误检查
#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "1234";
    char invalid_str[] = "1234abc";
    char *ptr;

    int num = strtol(str, &ptr, 10);
    if (*ptr != '\0') {
        printf("Invalid number!");
        return EXIT_FAILURE;
    }
    printf("Valid number: %d\n", num);

    num = strtol(invalid_str, &ptr, 10);
    if (*ptr != '\0') {
        printf("Invalid number!");
        return EXIT_FAILURE;
    }
    printf("Valid number: %d\n", num);

    return EXIT_SUCCESS;
}

在上面的示例中,我们使用了 strtol() 函数将字符串转换为整数。该函数的第一个参数是要转换的字符串,第二个参数是一个指针,它将指向未被转换的部分的第一个字符。最后一个参数是基数,通常设置为 10。

如果未被转换的部分不为空,则表示该字符串不是有效的整数表示。因此,我们可以检查未被转换的部分是否为空来进行错误检查。如果未被转换的部分不为空,则返回错误。否则,该字符串是有效的整数表示,将其转换为整数。

结论

在 C 中,将字符串转换为整数是一个常见的操作,但是错误检查非常重要。使用 strtol() 函数可以安全地将字符串转换为整数,并检查转换是否成功。