入门模拟之字符串处理A1061 A1073

A1061

#include<iostream>
#include<cctype>
using namespace std;


int main()
{
	char t[2];
	//输入四个字符串,前两个字符串代表星期几和时间中的时,后两个字符串代表时间中的分
	string a,b,c,d;
	string week[7]={"MON ","TUE ","WED ","THU ","FRI ","SAT ","SUN "};
	cin>>a>>b>>c>>d;
	//当我输入这四个字符串之后,我就应该找前两个字符串第一对相同字母和第二对相同的字母。
	int i=0,j=0;
	while(i<a.length()&&i<b.length())
	{
		if(a[i]==b[i]&&(a[i]>='A'&&a[i]<='G'))
		{
			t[0]=a[i];
			break;
		}
		i++;
	 } 
	i++;
	while(i<a.length()&&i<b.length())
	{
		if(a[i]==b[i]&&((a[i] >= 'A' && a[i] <= 'N') || isdigit(a[i]))) 
		{
			t[1]=a[i];
			break;
		}
		i++;
	}
	int pos=0;
	while(j<c.length()&&j<d.length())
	{
		if(c[j]==d[j]&&isalpha(c[j]))
		{
			pos=j;
			break;
		}
		j++;
	}
	int m=isdigit(t[1])?t[1]-'0':t[1]-'A'+10;
	cout<<week[t[0]-'A'];
	printf("%02d:%02d",m,pos);
	return 0;
 } 

A1073 未AC

//patA1073
//c++特性中的stoi,stod
//stoi:将string转换为int
//stod:将string转换为double 
#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s;
	cin>>s;
	int i=0;
	while(s[i]!='E') i++;
	string n=s.substr(1,i-1);//n是整个数(不包括符号) 
	int m=stoi(s.substr(i+1)); //m有正有负,小于0时向左移,大于0时向右移
	if(s[0]=='-') 
	{
		cout<<"-";
	}
	//看小数点在哪个位置,看m的绝对值 
	//小数点都在i=2的位置上
	//如果m<0,小数点向左移m位 
	if(m<0)
	{
		cout<<"0.";
		for(int j=0;j<abs(m)-1;j++)
		{
			cout<<"0"; 
		}
		for(int j=0;j<n.length();j++)
		{
			if(n[j]!='.') cout<<n[j];
		}
	}else{
		cout<<n[0];
		int cnt,j;
		for(j=2,cnt=0;j<n.length()&&cnt<m;j++,cnt++) cout<<n[j];
		if(j==n.length()){
			for(int k=0;k<m-cnt;k++)
			cout<<'0';
		}else{
			cout<<'.';
			for(int k=j;k<n.length();k++) cout<<n[k];
		}
	}
	
	return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值