文章
3
粉丝
163
获赞
2
访问
34.8k
这题困扰了一下午,细节太多了。自身太菜写的有点繁琐
1.全数字或字母不带点号情况
2.例如29..23.12.45点号连着的情况,还有点号在最前和最后的情况
3.最后答案一定要用%02X大写的情况,我就是这卡了一下午!!!!
#include
#include
#include
using namespace std;
int exchange(string s)
{
int sum = 0,coun = 1;
for(int i = s.size()-1;i >= 0;i--)
{
sum += (s[i] - '0')*coun;
coun *= 10;
}
return sum;
}
int main()
{
string s,temp;
getline(cin,s);
int flag = 0,sum = 0,start;
int num[4];
int k = -1;
int coun = 0;
for(int i = 0;i < s.size();i++)
{
if((s[i]>'9' || s[i] <'0') && s[i] != '.')
flag = 1;
else if(s[i] == '.')
{
if(s[i+1] == '.' || i == s.size()-1 || i == 0)
flag = 1;
start = i;
sum = exchange(temp);
if(sum > 255 || sum < 0)
flag = 1;
num[++k] = sum;
cou...
登录后发布评论
暂无评论,来抢沙发