字符串转换成实数的方法

    今天遇到一个题目:

    输入五个数(含负数、小数),将它们按有小到大的顺序排列起来

        提示:需要排列的数字通过参数传递进来,

        例如:输入:./a.out  -1  2.1  -3  5  7   输出:-3  -1  2.1  5  7

    这里就用到了atof函数,目的是将命令行输入的数字字符串转化成浮点型数字,然后再进行简单排序。

    1、原型:double atof(char *str);    

    2、说明:参数str字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符‘\0’)字符时停止转换,返回实数;

    3、头文件:#include <stdlib.h>

    4、code:

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

int main(int argc,char *argv[])
{
int i,j;
float arr[10];
for(i = 1;i < argc;i++)
{
arr[i-1] = atof(argv[i]);
}

float temp;
for(i = 0;i < 5; i++)
{
for(j = 0;j < 4-i; j++)
{
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

for(i = 0;i < 5;i++)
{
printf("%.3f ",arr[i]);
}
printf("\n");
    return 0;
}

    这里只是介绍atof的用法,所以我选择的是最简单的冒泡排序,原型是 double atof(char *str);

    相应的,还有字符串转整数值函数 int atoi(char *str) 和字符串转长整型函数 long atol(char *str);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值