把"00:90:8A:1D:30:51"转换成"00-90-8A-1D-30-51",如何格式错误,显示出格式错误的种类,有些不规范的转换成规范的格式,例如,"1234:8F:90-D1:76",为不规范格式转换成

标准格式。

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std; void getStandardMac(char str[],char s[])
{
int count=0;
int temp=0;
int pre=1;
char c;
for(int i=0;i<strlen(str);i++) //判断字符数是否为6字节
{
if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='F')
{
count++;
}
}
if(count!=12)
{
cout<<"mac is not 6 字节"<<endl;
exit(0);
}
for(int j=0;j<strlen(str);j++)
{
if((pre-temp)%2!=0||(pre-temp)==0) //判断分隔符之间的字符是否为偶数
{
temp=pre;
if(str[j]==':'||str[j]=='-')
{
if(j>2&&(j-pre)==1)
{
cout<<"出现了两个连续字符."<<endl;
exit(0);
}
pre=j;
}
}
else
{
cout<<"分隔符之间的字符数不为偶数"<<endl;
exit(0);
}
}
temp=0;
for(int k=0;k<strlen(str);k++)
{ if(temp==2||temp==5||temp==8||temp==11||temp==14)
{
s[temp++]='-';
k--;
}
else if(str[k]>='0'&&str[k]<='9'||str[k]>='A'&&str[k]<='F')
{
s[temp++]=str[k];
}
else
continue; }
s[temp]='\0';
}
int main()
{
char str[256];
char s[256];
cin>>str;
cout<<"原mac地址为:"<<str<<endl;
getStandardMac(str,s);
cout<<"mac标准地址为:"<<endl;
cout<<s<<endl;
return 0;
}

把mac地址转换为标准mac地址的更多相关文章

  1. 转换为标准IPv4格式

    Insus.NET刚写了一个函数,把一个IP地址转换为标准格式,即每段位均是由3个数字组成. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = ...

  2. 解析私有IP地址和公网IP地址

    局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...

  3. 我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网

    我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网   房东给的IP地址是:192.168.1.5 255.255.255.0 192.168.1.1 2 ...

  4. 为什么既要有IP地址还要有MAC地址

    在脑海中一直有个疑问,在网络上发送信息的时候为什么既要有IP地址还要有MAC地址,IP是唯一的,MAC地址也是唯一的,用一个难道不行么? 既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么 ...

  5. Mac通过域名查询IP地址

    Mac通过域名查询IP地址 方法一:使用Mac自带的"网络实用工具" 步骤: 搜索"网络使用工具",并打开: 点击LookUp,输入互联网地址,点击Lookup ...

  6. Linux 下PHP获取服务器状态CPU、MEM使用率、磁盘使用率、IP地址获取、MAC地址获取等信息记录

    获取服务器状态记录使用的是SHELL命令方式进行获取输出结果  然后进行字符串拆分处理等方式进行获取到自己有用信息 贴出获取方式以及常用处理方式 <?PHP $fp = popen('执行SHE ...

  7. macOS下利用dSYM文件将crash文件中的内存地址转换为可读符号

    一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应 ...

  8. IP地址转换为Int

    1.转换类 import com.google.common.base.Strings; import java.security.InvalidParameterException; import ...

  9. python实现IP地址转换为32位二进制

    python实现IP地址转换为32位二进制 #!/usr/bin/env python # -*- coding:utf-8 -*- class IpAddrConverter(object): de ...

随机推荐

  1. 3.11 Templates --Rendering with Helpers

    Ember提供几个辅助器允许你使用不同的方法渲染模板(render templates). 一.The {{partial}} Helper {{partial}}以呈现的模板作为参数,并在这里呈现模 ...

  2. Kylo 入坑记

    一.概述 Kylo,作为一个基于 Spark 和 NiFi 的开源数据湖编排框架,解决对数据湖获取.治理.感知和技术支持等诸多问题.Kylo 将数据湖的很多功能自动化,包括数据接入.准备.分析发现.P ...

  3. oracle_多字段统计(多count)

    oracle_多字段统计 查询同一张表中同一字段的不同值的综合,方法如下: select o.code 礼品代码, o.name 礼品名称, l.couponactivityid 券活动定义, cou ...

  4. SqlServer2012数据导入

    1.选择数据库,右击[任务]-->[导入数据]: 2.选择对应的数据源,和数据文件,下一步: 3.填写服务器地址,和数据库的登录信息,选择数据库名称: 4.复制一个或多个表或试图的数据: 5.将 ...

  5. git commit时加上Signed-off-by信息

    git commit -s -m "descriptions about the code" 只要加入-s参数即可自动加上Signed-off-by信息

  6. Helm - Error: cannot connect to Tiller

    helm2.9.1报错 [root@master ~]# helm version Client: &version.Version{SemVer:"v2.9.1", Gi ...

  7. NSwag给api加上说明

    参考http://petstore.swagger.io 给controller加上description https://github.com/RSuter/NSwag/issues/1803 xm ...

  8. python爬虫scrapy命令工具学习之篇三

    命令行工具(Command line tools) 全局命令 startproject settings runspider shell fetch view version 项目命令 crawl c ...

  9. Bigtable阶段性总结(版本1)

    Bigtable的角色:为大规模的结构化数据提供高效的存储.管理与查询. Bigtable的针对性: 大规模数据需要大规模集群支持,带来了存储.管理.查询.容错上的复杂性. 关系型数据库在数据规模较大 ...

  10. Qt532_QWebView做成DLL供VC/Delphi使用_Bug

    Qt5.3.2 vs2010 OpenGL ,VC6.0,Delphi7 1.自己继承 类QWebView,制作成DLL 供 VC6/Delphi7 使用 2.测试下来,DLL供VC6使用: 加载&q ...