当前位置: 代码迷 >> 综合 >> 华科16_3
  详细解决方案

华科16_3

热度:93   发布时间:2023-09-22 23:23:32.0

问题:

输入一个ip地址,判断字符串ip地址是否合法

分析:

ip地址规则:

1. 一共由点分成4部分 
2. 每部分中的数字范围为0-255 

代码:

#include <iostream>  
#include <stdio.h>   
#include <string.h>  
#include <math.h>  
#include <vector>  
#include <queue>  
#include <stack>  
#include <map>  
#include <string>  
#include <algorithm>  
#include <iomanip>
#define MAX 1000
using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */bool isLegal(char * str) {int length = strlen(str);int num[4];int size=0;int count=0;int c=1;int tmp=0;for(int i=length-1;i>=0;i--){if(str[i] == '.'){//printf("%d\n",tmp);num[size++] = tmp;			tmp=0;count++;c=1; continue;}else{tmp+=c*(str[i]-'0');c*=10;}		if(tmp>255 || tmp < 0 ){return false;}}if(count != 3){return false;}return true;
}int main(int argc, char** argv) {/*IP地址规则:1. 一共由点分成4部分 2. 每部分中的数字范围为0-255 */char input[MAX];while(gets(input)){if(isLegal(input)){printf("IP地址合法!");}else{printf("IP地址不合法!");}printf("\n");}//puts(input);return 0;
}


  相关解决方案