gpt4 book ai didi

在 C 中将 Char* 变量转换为 uint32_t

转载 作者:行者123 更新时间:2023-11-30 17:16:38 24 4
gpt4 key购买 nike

我有一个 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

最佳答案

要将字符串转换为其表示的数字,请使用 strtol()strtoul()来自<stdlib.h>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));
}

关于在 C 中将 Char* 变量转换为 uint32_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com