如何将数字赋值到char数组中?
一个字符串,是IP地址类型的,类似“192.168.1.1”,想赋值到一个unsigned char数组t1[4]中去,即数组的第一位是192,第二位是168,第三位是1,第四位是1。
写了一个转换程序,但输出总是不对。从字符串中取数都是对的,就是赋值后就不对了,请各位指正,错在何处?
#include "stdafx.h"
#include <stdio.h>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
char ipaddr[64];
unsigned char t1[4];
char *p_addr;
int i =0;
int ip_number;
char *p;
char *delims={"."};
strcpy(ipaddr, "192.168.1.2");
p = strtok(ipaddr,delims);
while (p != NULL)
{
ip_number = atoi(p);
unsigned char ss = ip_number;
//str[0] = (char)(a & 0xff);
//t1[i] = (char)(ip_number & 0xff);
//t1[i] = (ip_number>>8) & 0xff;
//memcpy(t1[i],&ip_number,4);
t1[i] = ss;
p=strtok(NULL,delims);
}
for (int j = 0; j < 4; j++)
{
printf("The number is %d.\n",t1[j]);
}
return 0;
}