怎么通过C语言判断字符串是否为点分十进制的IP地址

其他教程   发布日期:2023年09月09日   浏览次数:394

这篇文章主要介绍“怎么通过C语言判断字符串是否为点分十进制的IP地址”,在日常操作中,相信很多人在怎么通过C语言判断字符串是否为点分十进制的IP地址问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么通过C语言判断字符串是否为点分十进制的IP地址”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

判断字符串是否为点分十进制的IP地址

判断字符串是否为点分十进制的IP地址。

若是则转为16进制,

否则输出"error"。

例如

  • 输入:“192.41.6.20”,输出0XC0290614

  • 输入:“abc.41.6.20” ,输出error

  • 输入:192.41.6.20.23.234,输出error

  • 输入:“257.41.6.20”,输出error

注意:

Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。IP地址通常用“点分十进制”表示成**(a.b.c.d)的形式**,其中,a,b,c,d都是0-255之间的十进制整数。实际上是32位二进制(01100100.00000100.00000101.00000110)

完整代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define maxsize 100
  5. //十进制转为十六进制
  6. int dtox(int n,char st[]){
  7. int m;
  8. int top=-1;
  9. char c[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  10. while(n){
  11. m=n%16;
  12. st[++top]=c[m];
  13. n=n/16;
  14. }
  15. return top;
  16. }
  17. //输出十进制转为十六进制的结果
  18. void out(char st[],int top){
  19. while(top>-1){
  20. printf("%c",st[top--]);
  21. }
  22. }
  23. //将十进制的192字符串转为int类型的192
  24. int stringtoint(char s[]){
  25. int sum=0;
  26. int count=1;
  27. for(int i=strlen(s)-1;i>=0;i--){
  28. sum+=(s[i]-'0')*count;
  29. count=count*10;
  30. }
  31. return sum;
  32. }
  33. //将字符串用.分开
  34. int split(char s[],int t[])
  35. { char tmp[maxsize];
  36. memset(tmp, 0, sizeof(tmp));
  37. int count,c;
  38. int n1=0;
  39. int i=0;
  40. int n;
  41. c=0;
  42. while(i<strlen(s)){
  43. count=0;
  44. while(s[i]!='

以上就是怎么通过C语言判断字符串是否为点分十进制的IP地址的详细内容,更多关于怎么通过C语言判断字符串是否为点分十进制的IP地址的资料请关注九品源码其它相关文章!