文章
1
粉丝
229
获赞
1
访问
3.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";
}
登录后发布评论
暂无评论,来抢沙发