数据结构 将一个数值型字符串转换为数值
编写函数mystof,形参s指向数值型字符串首地址floatmystof(char*s)串为“123.23”转换成为123.23...
编写函数mystof,形参s指向数值型字符串首地址
float mystof(char *s) 串为“123.23”转换成为123.23 展开
float mystof(char *s) 串为“123.23”转换成为123.23 展开
2个回答
展开全部
如果是可以使用函数的话,直接用atof就好了
在数据结构课中估计是要考察栈的使用,把字符串按次序压栈S1,碰到小数点后压另一个栈S2,然后对S2的元素依次执行GetTop操作 sum+=(c-'0')*10^(-1*Stacklength(S2)),再pop;
对栈S1元素出栈执行操作执行累加。
float mystof(char *s){
while(s&&*s!='.'){push(S1,*s);s++};//小数点前入栈S1
while(s){push(S2,*s);s++};//小数点后入栈S2
float sum=0;
for(d=1;!StackEmpty(S1);d=d*10) //处理整数部分
{
pop(S1,c);
sum+=(c-'0')*d;
}
while(!StackEmpty(S2))//处理小数部分
{
GetTop(S2,c);
sum+=(c-'0')*10^(-1*Stacklength(S2)),
Pop(S2,c);
}
return sum;
}
在数据结构课中估计是要考察栈的使用,把字符串按次序压栈S1,碰到小数点后压另一个栈S2,然后对S2的元素依次执行GetTop操作 sum+=(c-'0')*10^(-1*Stacklength(S2)),再pop;
对栈S1元素出栈执行操作执行累加。
float mystof(char *s){
while(s&&*s!='.'){push(S1,*s);s++};//小数点前入栈S1
while(s){push(S2,*s);s++};//小数点后入栈S2
float sum=0;
for(d=1;!StackEmpty(S1);d=d*10) //处理整数部分
{
pop(S1,c);
sum+=(c-'0')*d;
}
while(!StackEmpty(S2))//处理小数部分
{
GetTop(S2,c);
sum+=(c-'0')*10^(-1*Stacklength(S2)),
Pop(S2,c);
}
return sum;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询