華為OJ IP位址判斷有效性

2021-07-03 11:26:03 字數 2888 閱讀 4820

**在多次提交過程中,出現了記憶體洩露,時間超限等很多問題;總結出以下幾點注意事項:

1.變數定義放在函式最前面,並初始化。

2.定義指標要分配空間,malloc和free都要有。

3.複製字串用 strnpy_s(des,dessize,sour,strlen(sour)); 這是安全版本。

4.分割字串用strtok_s,這是安全版本 char*next=null; strtok_s(s,」.」,&next); next不能少。

5.分情況討論要全面。**

#include

#include

bool isipaddressvalid(const

char* pszipaddr)

;char* next=null;

int i=0,j=0;

int len0=0,len1=0,len2=0,len3=0;

strncpy_s(input,400,pszipaddr,strlen(pszipaddr));

//////

//////

//////

//////

//////

//////

//////

////檢查非法字元

for(i=0;iif((input[i]=='.')||((input[i]<='9')&&(input[i]>='0'))||(input[i]==' ')) continue;

else

return

false;

}//////

//////

//////

//////

//////

//////

//////

////

i=0;

p=strtok_s(input,".",&next);

while(p!=null)

if(i!=4) return

false;

//////

//////

//////

//////

//////

//////

len0=(int)strlen(a[0]);

len1=(int)strlen(a[1]);

len2=(int)strlen(a[2]);

len3=(int)strlen(a[3]);

////1段判斷///

//////

//////

//////

//////

//////

////////

for(i=0;a[0][i]==' ';i++);

if(((len0-i)>3)||(len0==i))

return

false;//長度大於3

if(atoi(a[0])>255)

return

false;//大於255

if((a[0][i]=='0')&&(i!=len0-1))

return

false;//第乙個為0且不是單個0

for(j=i;jif(a[0][j]==' ') return

false;

}//中間有空格錯誤

////////2段判斷///

//////

//////

//////

//////

//////

//////

////////

if((len1>3)||(len1==0))

return

false;//長度大於3

if(atoi(a[1])>255)

return

false;//大於255

if((a[1][0]=='0')&&(len1!=1))

return

false;//第乙個為0且不是單個0

for(j=0;jif(a[1][j]==' ') return

false;

}//中間有空格錯誤

//////

////3段判斷///

//////

//////

//////

//////

//////

//////

////////

if((len2>3)||(len2==0))

return

false;//長度大於3

if(atoi(a[2])>255)

return

false;//大於255

if((a[2][0]=='0')&&(len2!=1))

return

false;//第乙個為0且不是單個0

for(j=0;jif(a[2][j]==' ') return

false;

}//中間有空格錯誤

//////

////4段判斷///

//////

//////

//////

//////

//////

//////

////////

if(atoi(a[3])>255)

return

false;//大於255

if(a[3][0]=='0')

}for(i=0;a[3][i]!=' ';)

if((i>3)||(i==0)) return

false;//長度大於3

for(j=i;jif(a[3][j]!=' ') return

false;

}free(input);

free(p);

return

true;

}

華為oj IP位址判斷有效性

判斷輸入的字串是不是乙個有效的ip位址 詳細描述 請實現如下介面 boolisipaddressvalid constchar pszipaddr 輸入 pszipaddr 字串 輸出 true 有效的ip位址,false,無效的ip位址 約束輸入ip為 格式 字串兩端含有空格認為是合法ip 字串中...

IP位址判斷有效性

描述 詳細描述 請實現如下介面 booli sipaddressvalid const char pszipaddr 輸入 pszipaddr 字串 輸出 true 有效的ip位址,false,無效的ip位址 約束輸入ip為 格式 字串兩端含有空格認為是合法ip 字串中間含有空格認為是不合法ip 類...

C 判斷IP位址有效性

功能 判斷ip位址是否有效 介面函式 booli sipaddressvalid const char pszipaddr 輸入 pszipaddr 字串 輸出 true 有效的ip位址,false,無效的ip位址 約束 1.輸入ip為 格式 2.字串兩端含有空格認為是合法ip 3.字串中間含有空格...