PAT字符串处理题---1024 科学计数法 (20分)

1024 科学计数法 (20分)

  • substr():substr(起始位置,往后要几个字符)
  • stoi():string转换为int,参数必须是字符串,字符的话用substr(ch,1)转换为字符串
    常用字符串处理函数:
参数是字符即可
isalpha();//是否为字母
isdigit();//是否为数字
isupper();//是否为大写字母
islower();//是否为小写字母
#include<iostream>
#include<ctype.h>
#include<algorithm>
#include<sstream>
#include<string>
#include<cstdio>


using namespace std;

int main() {
	string s;
	cin>>s;
	if(s[0]=='-') cout<<'-';
	string s1=s.substr(s.find('.')+1,s.find('E')-s.find('.')-1);
	string s2=s.substr(s.find('E')+1,s.length()-s.find('E'));
	if(s2[0]=='-') {
		int num=stoi(s2);
		int n=stoi(s.substr(1,1));
		num=-num;
		if(num){
			cout<<"0.";
		for(int i=1; i<=num-1; i++) {
			cout<<"0";
		}
		cout<<n<<s1;
		}else{
			cout<<n<<"."<<s1;
		}
	} else {
		int num=stoi(s2);
		int n=stoi(s.substr(1,1));
		if(s1.length()<=num){
			cout<<n<<s1;
			for(int i=1;i<=num-s1.length();i++){
				cout<<"0";
			}
		}else{
			if(num){
				cout<<n;
			for(int i=0;i<=num-1;i++){
				cout<<s1[i];
			}
			cout<<".";
			for(int i=num;i<s1.length();i++){
				cout<<s1[i];
			}
			}else{
				cout<<n<<"."<<s1;
			}
		}
	}
	return 0;
}

原文地址:https://www.cnblogs.com/bingers/p/13083753.html