gpt4 book ai didi

c - 使用 sprintf_s() 后如何将 char* 重新转换为整数?

转载 作者:行者123 更新时间:2023-11-30 14:34:38 27 4
gpt4 key购买 nike

这是我从 int 到 char* 的转换:

char* str = malloc(sizeof("0000"));
int int_ = 10;
sprintf_s(str, sizeof("0000"), "%04d", int_);
//str == "0010"

我想将 str 重新转换为 int (int_new == 10)。我怎样才能做到这一点?

最佳答案

使用 strlen 查找字符串的大小。请记住为字符串末尾的 nul 字节添加 +1。否则,snprintf 将失败。

int max_size = 5 ;
char* str = malloc(max_size);
int int_ = 10;
sprintf_s(str, max_size, "%04d", int_);

int int_new = atoi(str) ;

替代方案

int int_ = 10;

char buff[32] ; // make it big enough to worst case
snprintf(buff, sizeof(buff), "%04d", int_) ;
char *str = strdup(buff) ;

int int_new = atoi(str) ;

关于c - 使用 sprintf_s() 后如何将 char* 重新转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58891956/

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