繁体   English   中英

使用 sprintf_s() 后如何将 char* 重新转换为 integer?

[英]How to re-cast char* to integer after using sprintf_s()?

这是我从 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) ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM