在这些日子里,我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
有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));
}
Run Code Online (Sandbox Code Playgroud)
输出将是
atol=2545 atof=2545.965000 atoi=2545
char a[]={“heyyou”};
Run Code Online (Sandbox Code Playgroud)
现在当你运行程序时,以下将是输出(为什么?,是否有任何解决方案将纯字符串转换为整数?)
atol=0 atof=0 atoi=0
Run Code Online (Sandbox Code Playgroud)
该字符串应包含数值.现在将此程序修改为
char a[]={“007hey”};
Run Code Online (Sandbox Code Playgroud)
这种情况下的输出(在Red Hat Linux中测试)将是
atol=7 atof=7.000000 atoi=7
Run Code Online (Sandbox Code Playgroud)
所以这些功能只用了007,而不是剩下的部分(为什么?).
现在考虑一下
char a[]={“hey007?};
Run Code Online (Sandbox Code Playgroud)
该计划的输出将是
atol=0 atof=0.000000 atoi=0
Run Code Online (Sandbox Code Playgroud)
所以我只想将我的字符串转换为数字,然后再转换为相同的文本.我玩这些功能,如你所见,我得到了非常有趣的结果.
这是为什么?
是否还有其他函数可以从/转换为字符串/整数,反之亦然?
编辑:
所以作为输入,如果我拿一些名字,或者其他什么,我会将它们转换为整数/浮点数......然后应用其他一些函数.
另外,我很好奇当我使用你的任何建议时,我是否会使用相同的输入采用相同的输出?
| 归档时间: |
|
| 查看次数: |
37220 次 |
| 最近记录: |