ip判断 想复杂了 不会用scanf的问题
错误 C++ forbids comparison between pointer and integer
char ’ ’ 是单引号!
错误 fcould not be used as a funciton
把函数名字换一个就好了。。。。应该是系统中已经有这个函数了函数名字和变量名字重名了 所以函数要写复杂一写的名字 至少不能是一个字 比如f a这种函数要坚决抵制!
错误 乌龙就像一个污渍
像一个屋子一样擦不掉了,所以导致了输出结果的错误 想了好久。。。
难点
char转int 用ascll码[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMhCs5vs-1641555698953)(F:\MarkDown\寒假算法练习.assets\image-20220107163712944.png)]
我的代码
#include<bits/stdc++.h>
using namespace std;
int fun(string s,int n,int m)//把char数组s中从a[n]-a[m]的char 变成 数字 m>n
{
int sum=0;
int j=0;
for(int i=m;i>=n;i--)
{
sum+=char(s[i]-48)*pow(10,j);
j++;
} //次方
return sum;
}
int f2(string s,int n)//s中s[n]后的点的位置
{
for(int i=n;i<=s.length();i++)
if(s[i]=='.')
{
return i;
}
return 0;
}
char func(string s)
{
int e=f2(s,0);
int f=f2(s,e+1);
int g=f2(s,f+1);
int a=fun(s,0,e-1);
int b=fun(s,e+1,f-1);
int c=fun(s,f+1,g-1);
int d=fun(s,g+1,s.length()-1);
if( (a>=0&&a<=255)&&(b>=0&&b<=255)&&(c>=0&&c<=255)&&(e>0<=3)&&(e>0<=7))
return 'Y';
else
return 'N';
}
int main()
{
string s="a.b.c.d.de";
cout<<func(s);
//因为把所有的东西都转化成了acscll码所以无法解决其中 是字母的问题,字母你tamd也给转化成了 数字了!!!!!!!!!!!!!!!!!!!!!!
}