点分十进制形式的ip地址转化为十六进制数

#include "csapp.h"
/*本代码将点分十进制形式的ip地址转化为十六进制数并且输出*/

//返回一个字符串代表的整数
int str2int(char *str)
{
  //要注意变量的初始化
  int value=0;
  //字符串长度
  int length = strlen(str);
  //基数
  int base=1;
  while(--length!=0) {
    base*=10;
  }
  while(*str!='\0') {
    //用ascii码来计算
    int c = *str++;
    value = value + (c - 48) * base;
    base/=10;
  }
  return value;
}

//将十进制整数转化为16进制整数并以字符形式输出
char base_10_to_base_16(int value)
{
  if(value>=0&&value<=9)
    return (value+48);
  else if(value>=10&&value<=15)
    return (value-10+97);
}

//将16进制整数数组转化为字符串输出,调用上面的base_10_to_base_16函数
char* int_to_string_of_base_16(int value[],int bit)
{
  char* str = (char *)malloc(sizeof(char)*2*bit);
  char* copy_str = str;
  int i;
  for(i=0;i


转载于:https://my.oschina.net/zzw922cn/blog/473208

你可能感兴趣的:(点分十进制形式的ip地址转化为十六进制数)