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整除的年份即為閏年。由於邏輯運算子邏輯與和邏輯或的關係。這兩個邏輯運算子都進行阻斷操作。也就是說 操作符。如果第一個表示式不成立的話,這個操作到此就結束了,不會去驗證後面的表示式是否成立...