c语言的几个技巧1 删除字符串空的空格char buf[] ="srg mdgg gdssssssg"; char * p; char * q; for (p = q = buf; *p; ++p ) if ( *p != ' ') *q++ = *p; *q = '\0';2 ip转为网络字节序整数不要使用inet_addr,linux曾经有这样的一个bug,输入255.255.255.255,返回INADDR_NONE,或者使用inet_aton const unsigned char ip[]={127,0,0,1}; struct sockaddr_in adr_inet; memcpy(&adr_inet.sin_addr.s_addr,ip,4);多个ip struct { unsigned char ip[4]; } address[]={ {{3,3,2,1}}, {{127,0,0,1}} }; struct sockaddr_in adr_inet; for(int i=0;i<2;i++) { memcpy(&adr_inet.sin_addr.s_addr,address[i].ip,4); }3 网络字节序整数转为ip 不要使用inet_ntoa,这个函数在多线程和递归调用有问题 unsigned int ip=0x0100007f; unsigned char *b; b=(unsigned char *)&ip; char a[32]; _snprintf(a,32,"%u.%u.%u.%u",b[0],b[1],b[2],b[3]); |