溫馨提示×

如何利用strtoul進行字符串驗證

c++
小樊
82
2024-08-30 02:55:52
欄目: 編程語言

strtoul 是一個C語言庫函數(shù),用于將字符串轉(zhuǎn)換為無符號長整數(shù)

  1. 包含頭文件:在代碼中包含 stdlib.h 頭文件以使用 strtoul 函數(shù)。
#include <stdlib.h>
  1. 編寫驗證函數(shù):創(chuàng)建一個函數(shù),接收一個字符串參數(shù),并使用 strtoul 進行驗證。
#include<stdio.h>
#include <stdbool.h>
#include <ctype.h>

bool is_valid_number(const char *str) {
    if (str == NULL || *str == '\0') {
        return false;
    }

    char *endptr;
    strtoul(str, &endptr, 10);

    // 如果endptr指向字符串末尾,說明整個字符串都是有效數(shù)字
    return *endptr == '\0';
}
  1. 測試驗證函數(shù):編寫測試代碼來驗證你的函數(shù)是否正確。
int main() {
    const char *test1 = "12345";
    const char *test2 = "-12345";
    const char *test3 = "12a45";
    const char *test4 = "";
    const char *test5 = NULL;

    printf("Test 1: %s\n", is_valid_number(test1) ? "Valid" : "Invalid");
    printf("Test 2: %s\n", is_valid_number(test2) ? "Valid" : "Invalid");
    printf("Test 3: %s\n", is_valid_number(test3) ? "Valid" : "Invalid");
    printf("Test 4: %s\n", is_valid_number(test4) ? "Valid" : "Invalid");
    printf("Test 5: %s\n", is_valid_number(test5) ? "Valid" : "Invalid");

    return 0;
}

這個示例中的 is_valid_number 函數(shù)會返回 true,如果給定的字符串表示一個有效的無符號整數(shù)。通過使用 strtoul 函數(shù),我們可以輕松地檢查字符串是否只包含數(shù)字并且沒有其他無效字符。

0