gpt4 book ai didi

将字符串转换为 int 而不删除零

转载 作者:行者123 更新时间:2023-11-30 20:00:58 25 4
gpt4 key购买 nike

我有类似的字符串

char str[10] = "0123456789";

我需要将其转换为int。我用 atoi 尝试过,但这个函数删除了 0。我在谷歌上搜索了一下,发现了同样的问题 here 。许多答案都提供了使用 strtol 的解决方案,但它不起作用。以下是我用于 strtol 的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char str[30] = "0123456789 This is test";
char *ptr;
int ret;

ret = strtol(str, &ptr, 10);
printf("The number is %d\n", ret);
printf("String part is %s\n", ptr);

return(0);
}

Output:
The number is 123456789
String part is This is test

在这种情况下我做错了什么。如何在不删除零的情况下将字符串转换为整数。

最佳答案

您需要相应地格式化输出。

  • %d 仅使用最短的字符串表示形式(无前导零)以十进制打印 int
  • %8d(例如)将在大小为 8 的字段中以十进制打印 int(如果需要,则前导空格)
  • %08d(例如)将在大小为 8 且带前导零的字段中以十进制打印 int。

关于将字符串转换为 int 而不删除零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361327/

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