c++ 字串转数值

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:59:11
请问
要如何写一个 " 字串转数值 " 的程序
字串转数值需-48(这边我也不太清楚)

麻烦大大帮忙写出完整程序码
谢谢!!

例如
输入字串 456.78

印出结果如下
4
45
456
0.700000
0.780000

乘2= 913.56

程序码如下
不知为什麼执行结果都是错的!!

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

int main(void){

char c[80];
int i=0;
gets(c);
i = 'c' - 48;
printf("%d",i);

system("PAUSE");
return 0;

}

兄弟,我看了你写的。
数字字符转换成数字确实是要减48,但需要注意的是:你程序中的c是一个字符数组,不是一个字符。要将字符数组里面的转换成数字,需要单独对里面的每一个元素进行转换,你用‘c'是不能实现的。比如你可以用个循环,c[0]=c[0]-48,c[1]=c[1]-48,c[2]=c[2]-48,c[3]=c[3]-48。。。之后数组里面保存的就是你输入的数字了。
不知道你明白了没有呢?希望对你有所帮助哦!

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

int main(void){

char c[80],*p;
int j;
double i=0.0l;

//复制字符串
strcpy(c, "456.7812121");

//p指向字符串最后一个字符
p = c + strlen(c) - 1;

//计算小数点的位数
for(j = 0; *p != '.'; j++, p--);

//转换成数值
for(p = c;*p;p++)
if(*p <='9' && *p >='0')
i = 10 * i + *p - '0'; //'0'就是48

//小数位
if(j >0) while(j)
{
i /=10.0;
j--;
}

//打印
printf("%f",i);
system("PAUSE");
return 0;
}