//假設sscanf沒學過的話..這樣吧~字符串無腦分割
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
string str;
cin>>str;
int flag=1;
vector<string>myvector;
if(str[str.size()-1]=='.') flag=0; //自己添加的也是改變,那麼就要判斷
else str=str+'.';
if(str[0]=='.') flag=0;
else str='.'+str;
int a=0;
int b=str.find('.',a+1);
while(b!=string::npos)//無腦分割字符串
{
if(str.substr(a+1,b-a-1)!="")
myvector.push_back(str.substr(a+1,b-a-1));
else flag=0;
a=b;
b=str.find('.',a+1);
}
if(myvector.size()!=4) flag=0;
for(int i=0;i<myvector.size();i++)
{
for(int j=0;j<myvector[i].size();j++)
{
if(myvector[i][j]-'0'>=10||myvector[i][j]-'0'<0) flag=0;
}
if(atoi(myvector[i].c_str())>255||atoi(myvector[i].c_str())<0) flag=0;
}
if(flag==0) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
return 0;
}
北郵oj IP地址問題(非sscanf)方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.