文章

1

粉丝

229

获赞

1

访问

2.5k

头像
IP地址
P1023 贵州大学机试题
发布于2023年3月23日 22:16
阅读数 2.5k

已AC

多加点条件就好了 

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
vector<int> num;
int getnum(string str,int &i){
	int sum=0;
	while(isdigit(str[i])){
		sum*=10;
		sum+=str[i]-'0';
		i++;
	}
	return sum;
}
int main(){
	string str;
	getline(cin,str);
	int i=0,count=0,flag=1;
	while(i<str.length()){
		if(isdigit(str[i])){
			int temp=getnum(str,i);
			if(temp>255){
				flag=0;
				break;
			}
			num.push_back(temp);
			
		}else if(str[i]=='.'){
			count++;
			i++;
			if(count>3){
				flag=0;
				break;
			}
		}
		else {
			flag=0;
			break;
		}
	}
	if(num.size()!=4)flag=0;
	if(flag){
	cout<<"0x";
		for(int i=0;i<4;i++)
			printf("%02X",num[i]);
	} else cout<<"Error";
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发