華為oj IP位址判斷有效性

2021-07-05 08:00:07 字數 1411 閱讀 6791

判斷輸入的字串是不是乙個有效的ip位址

詳細描述:

請實現如下介面 

boolisipaddressvalid(constchar* pszipaddr) 

輸入:pszipaddr 字串 

輸出:true 有效的ip位址,false,無效的ip位址

約束輸入ip為***.***.***.***格式 

字串兩端含有空格認為是合法ip 

字串中間含有空格認為是不合法ip 

類似於 01.1.1.1, 1.02.3.4 ip子段以0開頭為不合法ip 

子段為單個0 認為是合法ip,0.0.0.0也算合法ip

#include #include #includeusing namespace std;

bool isipaddressvalid(const char* pszipaddr)

//if

int size = strlen(pszipaddr);

// 去除前導0

int start = 0;

while(pszipaddr[start] == ' ')

//while

// 去除後導0

int end = size - 1;

while(pszipaddr[end] == ' ')

//while

int num = 0;

int pointcount = 0;

int first = start;

for(int i = start;i < end+1;++i)

//if

else if(pszipaddr[i] == '.' || i == end)

// 驗證.個數

if(pszipaddr[i] == '.')

//if

}//if

// 遇到.開始清算計算得到的資料合法性

if(num > 255 || num < 0)

//if

// 以0開頭且不為0 例如:023

if(num != 0 && pszipaddr[first] == '0')

//if

first = i+1;

num = 0;//乙個ip段判斷完將num歸零從新計算

}//else

else

//else

}//for

if(pointcount != 3)

return true;

}int main()

{string ipaddr;

while(cin>>ipaddr)

{const char* pszipaddr=ipaddr.c_str();

if(isipaddressvalid(pszipaddr))

cout<<"ip位址合法"<

華為OJ IP位址判斷有效性

在多次提交過程中,出現了記憶體洩露,時間超限等很多問題 總結出以下幾點注意事項 1.變數定義放在函式最前面,並初始化。2.定義指標要分配空間,malloc和free都要有。3.複製字串用 strnpy s des,dessize,sour,strlen sour 這是安全版本。4.分割字串用strt...

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.字串中間含有空格...