gpt4 book ai didi

c++ - atol()、atof()、atoi() 函数行为,是否有稳定的方法从/到字符串/整数转换?

转载 作者:太空狗 更新时间:2023-10-29 23:29:15 30 4
gpt4 key购买 nike

这几天我在玩atol()、atof() 和atoi() 的C 函数,从一篇博文中我找到了一个教程并应用了:

这是我的结果:

void main()
{
char a[10],b[10];
puts("Enter the value of a");
gets(a);
puts("Enter the value of b");
gets(b);
printf("%s+%s=%ld and %s-%s=%ld",a,b,(atol(a)+atol(b)),a,b,(atol(a)-atol(b)));
getch();
}

atof() 返回字符串的浮点值,atoi() 返回整数值。

现在看看我检查这段代码的 3 之间的区别:

main()
{
char a[]={"2545.965"};
printf("atol=%ld\t atof=%f\t atoi=%d\t\n",atol(a),atof(a),atoi(a));
}

输出将是

atol=2545 atof=2545.965000 atoi=2545

char a[]={“heyyou”};

现在当你运行程序时,输出结果如下(为什么?,有什么解决办法可以将纯字符串转换为整数吗?)

atol=0 atof=0 atoi=0

字符串应包含数值。现在将这个程序修改为

char a[]={“007hey”};

这种情况下的输出(在 Red Hat Linux 中测试)将是

atol=7 atof=7.000000 atoi=7

所以函数只采用了 007,没有采用其余部分(为什么?)。

现在考虑这个

char a[]={“hey007?};

程序的输出将是

atol=0 atof=0.000000 atoi=0

所以我只想将我的字符串转换为数字,然后再次转换为相同的文本。我使用了这些函数,如您所见,我得到了非常有趣的结果。

这是为什么?

是否有任何其他函数可以将字符串/整数相互转换,反之亦然?

编辑:

因此作为输入,如果我采用一些名称或其他名称,我会将它们转换为整数/ float ...然后应用一些其他函数。

另外我很好奇,当我使用您的任何建议时,我是否会采用相同的输出和相同的输入?

最佳答案

鉴于您还添加了 C++ 标记,此问题的高端解决方案是使用 Boost lexical_cast .

关于c++ - atol()、atof()、atoi() 函数行为,是否有稳定的方法从/到字符串/整数转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846501/

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