簡體   English   中英

在C語言中將Char *變量轉換為uint32_t

[英]Convert Char* Variable To uint32_t in C

我有一個Sqlite數據庫,並且正在使用此循環讀取值:

int i;

for(i=0; i<argc; i++) // [0] = IP, [1] = seq, [2] = count
{
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}

if (atoi(argv[2]) > stealthBeta)
{
    confirmSEQ((uint32_t)argv[1]);
}

argv[1]的值作為UNSIGNED INT存儲在數據庫中,並已正確寫到控制台中,但是當我調用該函數時,我得到了錯誤的數字。

我已經嘗試過投放,但無法正常工作。 將其從char*uint32_t的正確方法是什么?

要將字符串轉換為它表示的數字,請使用<stdlib.h> strtol()strtoul() strtoul()解析一個unsigned long ,保證至少為32位寬。 傳遞0作為base參數可以轉換以0x為前綴的十六進制表示形式。 前綴為0值將被解析為八進制,否則解析將以十進制完成。

#include <stdlib.h>

...

if (strtol(argv[2], NULL, 0) > stealthBeta) {
    confirmSEQ((uint32_t)strtoul(argv[1], NULL, 0));
}

使用atoi()轉換為int

使用(unsigned)atoi()轉換為unsigned

例如,在您的情況下:

if (atoi(argv[2]) > stealthBeta)
{
    confirmSEQ((uint32_t)atoi(argv[1]));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM