C语言 IP地址合法性判断 去除字符串首尾空格
生活随笔
收集整理的這篇文章主要介紹了
C语言 IP地址合法性判断 去除字符串首尾空格
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、c語言地址合法判斷
bool IsIPaddress_standard(const char* pszIPAddr) {if (!pszIPAddr) return false; //若pszIPAddr為空 char IP1[100],cIP[4]; int len = strlen(pszIPAddr); int i = 0,j=len-1; int k, m = 0,n=0,num=0; //去除首尾空格(取出從i-1到j+1之間的字符): while (pszIPAddr[i++] == ' '); while (pszIPAddr[j--] == ' '); for (k = i-1; k <= j+1; k++) { IP1[m++] = *(pszIPAddr + k); } IP1[m] = '\0'; char *p = IP1; while (*p!= '\0') { if (*p == ' ' || *p<'0' || *p>'9') return false; cIP[n++] = *p; //保存每個子段的第一個字符,用于之后判斷該子段是否為0開頭 int sum = 0; //sum為每一子段的數值,應在0到255之間 while (*p != '.'&&*p != '\0') { if (*p == ' ' || *p<'0' || *p>'9') return false; sum = sum * 10 + *p-48; //每一子段字符串轉化為整數 p++; } if (*p == '.') { if ((*(p - 1) >= '0'&&*(p - 1) <= '9') && (*(p + 1) >= '0'&&*(p + 1) <= '9'))//判斷"."前后是否有數字,若無,則為無效IP,如“1.1.127.” num++; //記錄“.”出現的次數,不能大于3 else return false; }; if ((sum > 255) || (sum > 0 && cIP[0] =='0')||num>3) return false;//若子段的值>255或為0開頭的非0子段或“.”的數目>3,則為無效IP if (*p != '\0') p++; n = 0; } if (num != 3) return false; return true; }2、首尾去除空格
void trim(const char* strin,char* strout) {int i=0,m=0,len_ip=0,j=0,k=0;while(strin[k++]==' '){if(k==strlen(strin)){memset(strout,0,sizeof(strout));stpcpy(strout,"");return;}}len_ip=strlen(strin);j=len_ip-1;while(strin[i++]==' ');while(strin[j--]==' ');strncpy(strout,strin+(i-1),(j+1)-(i-1)+1);strout[j+1]='\0'; }?
總結
以上是生活随笔為你收集整理的C语言 IP地址合法性判断 去除字符串首尾空格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows ping默认参数
- 下一篇: QTextEdit查找某个字符串更换颜色