算法題:判斷字符串是否為 ipv4 地址

#include <stdio.h>typedef char bool;
#define true 1
#define false 0/**1.判斷字符串是否形如“192.168.1.1”2.字符串兩端含有空格視為合法ip,形如“    192.168.1.1    ”3.字符串中間含有空格視為非法ip,形如“192.168. 1.2”4.字符串0開頭視為不合法ip,形如192.168.01.15.字符串0.0.0.0視為合法ip*/bool checkIpv4(const char *ip){printf("檢驗對象是:%s\n", ip);if(NULL == ip) {return false;}const char *q = ip;     //字串指針unsigned short int s = 0, count = 0, digitNumber = 0;  //s是字串轉化為的整型,count是 . 的個數, digitNumber 是 . 之間的數量bool hasZero = false;// 開頭有空格while(' ' == *q) {q++;}while('\0' != *q) {if('.' == *q) {// . 前面沒有任何值,則非法if(digitNumber == 0) {return false;}s = 0;digitNumber = 0;count++;hasZero = false;q++;continue;}// 值非法if(*q < '0' || *q > '9') {// 結尾空格if(' ' == *q && 3 == count) {const char *qq = q;while(' ' == *qq) {qq++;}return '\0' == *qq;} else{return false;}}int x = *q - '0';s = s*10 + x;// 0.0.0.0 合法, 00.0.0.0 不合法if(0 == s) {if(hasZero) {return false;} else{hasZero = true;}}if(s > 255) {return false;}digitNumber++;q++;}return (3 == count);
}int main(void){{const int count = 10;char *ip[count] = {"0.0.0.0", "255.255.255.255", "0.10.0.0", " 1.1.1.1", "1.1.1.1 ", " 1.1.1.1 "};for(int i = 0; i < count; i++) {if(checkIpv4(ip[i]))printf("該地址是IPv4地址\n");elseprintf("該地址不是IPv4地址\n");}}printf("\n\n");{const int count = 10;char *ip[count] = {"1.1.1. 1", "1..2.3", "00.1.1.1", "a.1.1.1", };for(int i = 0; i < count; i++) {if(checkIpv4(ip[i]))printf("該地址是IPv4地址\n");elseprintf("該地址不是IPv4地址\n");}}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457751.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

未捕獲typeerror: $形象。cropper不是函數_沒有學不會的python--細說自定義函數的細節...

沒有學不會的python函數是什么&#xff1f;老調常談&#xff0c;還是那老一套&#xff0c;學習一個東西前&#xff0c;先搞懂是什么&#xff0c;再來學習怎么用。函數函數&#xff0c;如果你是剛經歷過高考肯定很熟悉&#xff0c;數學中就經常出現這個名詞&#xff0c;比如什么…

centos 7.0上RabbitMQ 3.5.6版本多實例啟動操作講解

在很多場景中&#xff0c;我們可能需要單機上啟動多個rabbitmq實例&#xff0c;啟動多個實例其實就是啟用不同的端口。rabbitmq的默認端口為5672,15672,25672&#xff0c;以下經過實際操作絕對原創&#xff0c;親測有效&#xff0c;耗費了老半天時間&#xff0c;怎么沒有白費啊…

win2008r2 AD用戶賬戶的批量導入方法

win2008r2 AD用戶賬戶的批量導入方法 http://www.jb51.net/article/38423.htm 轉載于:https://www.cnblogs.com/cl1024cl/p/6205798.html

centos ping不通百度 ping不通外網

ping不通百度 ping不通外網 這個問題會導致yum源安裝軟件失敗 原因是 /etc/sysconfig/network-scripts/ifcfg-ens33 文件沒有配置好 注意檢查配置項 1配置本機ip地址 IPADDR 2設置網關 GATEWAY 3子網掩碼 NETMASK 4MAC地址 HWADDR 5DNS服務器 DNS1 文件內容實例 TY…

usg6000v 無法ping通_柯美復印機網絡打印無響應?無法打印、掃描?原來這里出了問題...

機器在安裝后&#xff0c;網絡連接正常&#xff0c;使用ping命令可以通&#xff0c;但無法使用打印&#xff0c;掃描等網絡功能Ping命令使用方法&#xff1a;1、“運行”輸入CMD&#xff0c;調出Dos窗口2、輸入命令&#xff1a;Ping 設備IP地址&#xff0c;按回車即可可以拼得通…

【NOIP考前模擬賽】純數學方法推導——旅行者問題

一、寫在前面 這題似乎是一道原創題目&#xff08;不是博主原創&#xff09;&#xff0c;所以并不能在任何OJ上評測&#xff0c;博主在網盤上上傳了數據&#xff08;網盤地址&#xff1a;http://pan.baidu.com/s/1mibdMXi&#xff09;&#xff0c;諸位看官需者自取。另外博主使…

ubuntu 配置靜態ip

先獲取root權限: sudo su ubuntu 靜態ip配置文件在 /etc/netplan/01-network-manager-all.yaml 文件初始內容可能是 # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager 沒有網卡配置信息 需要加入網卡配置項…

python中none是什么類型_如何在Python中”測試”None類型?

我有一個方法&#xff0c;它有時返回一個非類型的值。那么我怎樣才能質疑一個非類型的變量呢&#xff1f;例如&#xff0c;我需要使用if方法if not new:new #我知道這是錯誤的方式&#xff0c;我希望你理解我的意思。我想這是在這里回答的&#xff0c;顯然是在以前的某個地方。…

C++ 一個文件調用另一個文件的函數模板

筆記 實驗得出 函數模板只能被本文件調用&#xff0c;這一點與inline函數和靜態函數相似 &#xff0c;如果函數模板可能被其他文件調用 可以把函數模板定義在頭文件中。與inline函數相同&#xff0c;在不同文件可以定義同名同模板列表同函數參數的函數模板&#xff0c;甚至函數…

GO 語言筆記

使用 Visual Studio Code 開發環境配置請看 http://studygolang.com/articles/8851 為什么要使用Go 語言&#xff1f;Go 語言的優勢在哪里&#xff1f; - Go 語言- 知乎 請看 https://www.zhihu.com/question/21409296 基礎入門看官網 https://golang.org/ & 無聞 http…

python os讀取文件名_Python3基礎 os.path.splitext 處理文件名,得到文件名+擴展名

Python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4Conda : 4.5.11typesetting : Markdowncode"""Author : 行初心Date : 18-10-2Blog : www.cnblogs.com/xingchuxinGitee : gitee.com/zhichengjiu"""import osdef main():file_name_…

自己寫的幾個常用到的函數

<?php /* * 生成指定數量和指定字符串生成隨機字符串 * param int $len 獲取隨機字符的個數 * param string $range 指定在該字符串中獲取隨機字符 */ function randomString($len,$range){ if($range ){ $str 0123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNP…

我有話說

歡迎留言&#xff01;

qtreewidget 獲取根節點_詳解去中心化信任根dRoT技術

近日&#xff0c;第21屆國際信息與通信安全會議(ICICS 2019)在北京召開。ICICS是國際公認的網絡與信息安全類頂級學術會議&#xff0c;匯聚了國內外諸多信息安全專家與學術泰斗。本屆ICICS 2019會議圍繞信息與網絡安全技術的各個方面展開深入研討&#xff0c;議題涵蓋了區塊鏈、…

反向代理服務器的工作原理

http://blog.csdn.net/keyeagle/article/details/6723408轉載于:https://www.cnblogs.com/figofifa/p/5604407.html

Linux命令:bash腳本編程--腳本

練習&#xff1a;寫一個腳本adminuser33.sh&#xff0c;其用法格式為&#xff1a;adminuser33.sh --add -del -h|--help -v|--verbose其中&#xff0c;-h選項只能單獨使用&#xff0c;用于顯示幫助信息&#xff1b;--add選項時&#xff0c;新增用戶&#xff1b;如果同時使用了-…

python實參_python的形參和實參

Python中函數參數的傳遞是通過“賦值”來傳遞的。但這條規則只回答了函數參數傳遞的“戰略問題”&#xff0c;并沒有回答“戰術問題”&#xff0c;也就說沒有回答怎么賦值的問題。函數參數的使用可以分為兩個方面&#xff0c;一是函數參數如何定義&#xff0c;二是函數在調用時…

校招碎碎念

前兩天拿了去哪兒(Qunar)的offer&#xff0c;不打算接著找了&#xff0c;心累&#xff0c;結束我的校招生涯吧&#xff0c;寫寫這段時間的經歷。 本科生一只&#xff0c;普通一本&#xff0c;非211/985學校&#xff0c;出了省就沒人認那種&#xff0c;計算機專業&#xff0c;目…

pyQuery

pyquery – PyQuery complete API 選擇器基本支持jQuery用法 class pyquery.pyquery.PyQuery(*args, **kwargs)The main class class FnHook for defining custom function (like the jQuery.fn): >>> fn lambda: this.map(lambda i, el: PyQuery(this).outerHtml())…

python配置pip_Python pip源配置

pipy國內鏡像目前有&#xff1a;Win7下配置pip源&#xff1a;1、在win7用戶目錄下創建pip目錄&#xff0c;以用戶user為例&#xff1a;C:\Users\user\pip2、在pip目錄下新建pip.ini文件&#xff1a;C:\Users\user\pip\pip.ini3、配置文件內容&#xff1a;以下是一個簡單的配置示…