九度-题目1203:IP地址
http://ac.jobdu.com/problem.php?pid=1203
- 题目描述:
-
输入一个ip地址串,判断是否合法。
- 输入:
-
输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数。
接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。
- 输出:
-
可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”。
- 样例输入:
-
2
255.255.255.255
512.12.2.3
- 样例输出:
-
Yes!
No!
- 提示:
-
合法的IP地址为:
a、b、c、d都是0-255的整数。
- 来源:
- 2006年华中科技大学计算机保研机试真题
- 解1:
- 根据.的位置直接判断,输入的格式是确定的。只要判断四个数字的正确性。
-
#include<stdio.h>
#include<string.h> int main() {
int n;
while (scanf("%d", &n) != EOF) {
while (n--) {
char ip[];
scanf("%s", ip);
int len = strlen(ip);
int count = ;
int num = ;
for (int i = ; i < len; i++) {
if (ip[i] == '.') {
if (num >= && num <= ) {
count++;
}
num = ;
} else {
num = num * + ip[i] - '';
}
}
if (num >= && num <= ) {
count++;
}
if (count == ) {
printf("Yes!\n");
} else {
printf("No!\n");
}
}
}
return ;
}解2:
C++中没有split(分割字符串)函数。因此可以构造一个。使用起来就比较方便。不过对于该题而言,这样略显复杂。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <vector> using namespace std; char ip[]; void split(const string& s, const string& c, vector<string>& v)
{
string::size_type last, index;
index = s.find(c);
last = ;
while(string::npos != index)
{
v.push_back(s.substr(last, index-last)); last = index + c.size();
index = s.find(c, last);
}
if(last != s.length())
v.push_back(s.substr(last));
} bool isValid(char str[], vector<string> &ret)
{
int len=strlen(str);
if(len>) return false; string s=str;
string delim="."; split(s, delim, ret); int size=ret.size();
for(int i=; i<size; i++)
{
int num=atoi(ret[i].c_str());
if(num< || num>)
return false;
} return true;
} int main()
{
vector<string> ret;
int n;
while(scanf("%d", &n)!=EOF)
{
while(n--)
{
if(ret.empty()!=true)
ret.clear();
scanf("%s", ip);
bool isip=isValid(ip, ret);
if(isip)
printf("Yes!\n");
else
printf("No!\n");
}
} return ;
}
九度-题目1203:IP地址的更多相关文章
- 九度OJ 1203:IP地址 (字符串处理)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3038 解决:1496 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500) ...
- 九度 题目1421:Abor
转载声明本文地址 http://blog.csdn.net/yangnanhai93/article/details/40563285 题目链接:http://ac.jobdu.com/problem ...
- 九度 题目1437:To Fill or Not to Fill
题目描述: With highways available, driving a car from Hangzhou to any other city is easy. But since the ...
- 九度 题目1044:Pre-Post
转载请注明本文链接http://blog.csdn.net/yangnanhai93/article/details/40658571 题目链接:pid=1044">http://ac ...
- 九度-题目1026:又一版 A+B
http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m ...
- 九度-题目1195:最长&最短文本
http://ac.jobdu.com/problem.php?pid=1195 题目描述: 输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出 ...
- 九度 题目1154:Jungle Roads
题目描写叙述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid mon ...
- 九度 题目1454:Piggy-Bank 完全背包
题目1454:Piggy-Bank 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1584 解决:742 题目描述: Before ACM can do anything, a budg ...
- 【九度OJ】题目1026:又一版 A+B 解题报告
[九度OJ]题目1026:又一版 A+B 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过 ...
随机推荐
- 20155215 2016-2017-2 《Java程序设计》第3周学习总结
20155215 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 第四章主要讲了类的构建,数组对象,字符串对象的构建与操作等.要学会区分基本类型与类类 ...
- 20155216 2016-2017-2《Java程序设计》课程总结
20155216 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业1:简要内容:我对师生关系的见解 预备作业2:简要内容:有关C语言学习调查以及学习 ...
- PostgreSQL参数学习:max_wal_senders
磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@g ...
- itop4412学习-上层应用多任务开发
1. 首先搭建虚拟机VMWARE12.0+UBUNTU16.04,不过报错了,说是要关闭计算机(非重启)-- 进入BIOS -- 设置BIOS的虚拟化(不打开,默认是工作在32位模式的,virtual ...
- 三、Django安装和流程
一.MVC模式 MVC(Model-View-Controller),中文名“模型-视图-控制器”,是一个好的Web应用开发所遵循的模式,它有利于把Web应用的代码分解为易于管理的功能模块. M:Mo ...
- c# IE浏览器清除缓存没用
再想买更新JS和css文件之后, 使用 internet 里面的删除选项 发现样式和事件还是没用变 最终发现 需要 按 f12 找到这个清缓存才正常解决问题
- Spring学习(八)-----Spring注入值到集合类型的例子
下面例子向您展示Spring如何注入值到集合类型(List, Set, Map, and Properties). 支持4个主要的集合类型: List – <list/> Set – &l ...
- sqlite两表更新update
1 2 3 4 5 6 7 8 9 10 11 12 UPDATE t1 SET Column1 = ( SELECT Columnx FROM t2 WHERE t2. KEY = ...
- 180724-统计JVM进程中线程数两种方式小记
I. 统计进程中的线程数 相关系列博文推荐: 180711-JVM定位分析CPU性能消耗 180704-JDK常用监控参数 jvm调优的工具介绍 1. proc查询 /proc 目录以可读文本文件形式 ...
- centos7 安装rabbitmq3.4.1-1
安装环境:centos7版本 一.rabbitmq3.4.1-1安装环境配置: 安装erlang 1.创建Yum源 #创建yum源 sudo vi /etc/yum.repos.d/rabbitmq- ...