字符串转数字的算法

基本理念:

数字字符减去所对应的ASCII码值即对应的数值

代码解释很全面,详情请看代码

​
#include<iostream>
#include<string>
using namespace std;
double swap(char *str) {
	double x=0;
	int i = 0;
	//整数部分的转换
	while(str[i]>=48 && str[i]<=57) {
		x=x*10+str[i]-48; //字符0对应的ASCII码值为48
		i++;
	}
	//小数部分的转换
	if(str[i]=='.') {
		i++;
		double y=0;
		double j=10.0;
		while(str[i]>=48 && str[i]<=57) {
			y=y+(str[i]-48)/j;
			i++;
			j*=10;//小数点后面越来越小(逐渐小10倍)
		}
		x+=y;
	}
	return x;
}

int main()
{
	char str[20];
	cin.getline(str,20); //输入字符串
	//cin.get();  //吃掉一个回车键
	double a = swap(str);
	cout<<a<<endl;
	
	//若直接将字符串赋值给整型,则赋的值为ASCII码值
	int c = '1' - '1'; //可以进行运算(ASSCII码值的运算
	cout<<c<<endl; //输出为0
	return 0;
}

​

运行结果截图:

字符串转数字的算法

 

 

上一篇:【BA4988】_F6F1函数


下一篇:ccf考试前练手有感之 ccf24点