c語言題目輸入ip地址判斷是否為正確形式

2022-03-02 06:16:08 字數 1949 閱讀 2205

1樓:依稀紅顏落

if((a[i]<'0'||a[i]>'9')&&a[i]!='.')//正確形式的時候

這一句,在ascii表中0是在9前面的,所以應該是a[i]>='0'&&a[i]<='9',中間是邏輯與,這樣可以保證只有數字才有效

還有,你的程式邏輯也有點問題,for(i=1;a[i]!='\n';i++),這是從a[1]開始判斷,但是,應該是從a[0]開始判斷。

再有,這個for迴圈裡面,一開始判斷的是輸入的段數,你是根據點號判斷的,你自己數一下,應該是3個點,但是你卻是判斷的 j!=4;肯定報錯的

還有,判斷大於3個數字的那裡也有問題,你從始至終都只給b賦值過1,而且b並未初始化,陣列元素值不確定,怎麼能b[1]-b[0]>4呢?

2樓:文蓀百文

gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到換行符結束,但換行符會被丟棄,然後在末尾新增'\0'字元。

所以,判斷條件for(i=1;a[i]!='\n';i++)錯誤。應該是for(i=1;a[i]!='\0';i++);

同時,if(j!=4) k=1;這個判斷條件也不正確,應該是j!=3,因為從0開始的

3樓:南瓜豬的的的

應當使用正規表示式

如果是搞嵌入式而無法使用正規表示式才自己寫

急求一道關於ip地址與子網掩碼的c語言程式設計題(用c語言實現)

4樓:舒

不知道您有沒有學習過計算機網路。如果沒有,下面簡單介紹一下ip地址和掩碼。

ip地址是32位的,也就是4位元組。取值可以任意。

掩碼也是32位的,一般建議前面的位都為1,後面的位都為0。所以本題:

(1)只要是32位的都是有效的。

(2)判斷是否全1後面接全0,可用如下**實現:

#include

void main()

bianliang=bianliang>>1;

bianliang+=0x80000000;

}if(isyanma)

printf("%x是掩碼\n",yanma);

else

printf("%x不是掩碼\n",yanma);

}(3)如果掩碼的前n位為1,那麼此ip所在網路全部有效ip地址是此ip地址的前n位不變,後面的位從全0到全1,比如ip地址為1.1.1.

1掩碼為ffff0000,那麼此ip地址所在網路的全部有效ip地址是從1.1.0.

0到1.1.255.

255。

(4)兩個ip地址都與掩碼進行二進位制與,看得到的結果是否相同,如果相同則在同一子網中,否則不在同一子網中。這個用c很容易實現。

c語言ip判斷

5樓:匿名使用者

#include

struct ip

s;void yesno()

else printf("no\n");

}main()}

c語言 問題 c: ip地址的合法性檢查?

6樓:聽不清啊

這個程式只要,這個程式只要使用標準的讀入語句,讀入四個整數,然後判斷每個整數的範圍大於等於零,並且小於256就可以了

7樓:匿名使用者

#include

int isvaildip(char *ip)char *p = ip;

while (*p)

return 0;

}else if (*p >= '0' && *p <= '9')else

return 0;

p++;

}if (setions >= 0 && setions <= 255)

}return 0;

}int main(void)

return 0;}

如何判斷IP地址是否合法,ip地址怎麼判斷合法

ip地址,用 分隔的4個十進位制數,範圍是0 255,超過範圍就是無效的。總的來說,ip地址分類由第一個八位組的值來確定,任何一個0到127 間的網路地址均是一個a類地址。任何一個128到191間的網路地址是一個b類地址。任何一個192到223 間的網路地址是一個c類地址。任何一個第一個八位組在22...

c語言程式設計題,輸入年份,判斷是否為閏年

一 閏年判斷方法 1 非整百年 能被 4整除的為閏年。如2004年就 是閏年,2100年不專是閏年 2 整百年 能屬被400整除的是閏年。如2000年是閏年,1900年不是閏年 二 演算法設計 1 輸入年份 2 根據年份,判斷是否為閏年 3 輸出結果。三 參考 include int main vo...

c語言程式設計輸入年份判斷其是否為閏年並輸

include int main else 按照百科的說法,閏年的定義是能被4整除但不能被100整除,或能被400整除的年份即為閏年。由於邏輯運算子邏輯與和邏輯或的關係。這兩個邏輯運算子都進行阻斷操作。也就是說 操作符。如果第一個表示式不成立的話,這個操作到此就結束了,不會去驗證後面的表示式是否成立...