判斷輸入的字串是不是乙個有效的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.字串中間含有空格...