#include <bits/stdc++.h>
using namespace std;
//将字符串用'.'分隔开
vector<string> split(string input) {
vector<string> parts;
string temp;
for(int i = 0; i<input.length(); i++) {
if(input[i] == '.') {
parts.push_back(temp);
temp.clear();
} else {
temp+=input[i];
}
}
parts.push_back(temp);
return parts;
}
int S2I(string input) {
int res = 0;
int weight = 1;
for(int i = input.size()-1; i >= 0; i--) {
res = res + (input[i] - '0') * weight;
weight = weight * 10;
}
return res;
}
bool isValid(vector<string> parts) {
for(int i = 0; i < parts.size(); i++) {
int num = S2I(parts[i]);
if(num > 255 || num < 0)return false;
}
return true;
}
int main() {
string input;
while(cin>>input) {
vector<string> parts = split(input);
// for(int i = 0; i < parts.size(); i++) {
// cout<<parts[i]<<endl;
// }
if(isValid(parts)) {
cout<<"Yes!"<<endl;
} else {
cout<<"No!"<<endl;
}
}
return 0;
}
1、自定义S2I函数
2、学会分割字符串的方案

京公网安备 11010502036488号