c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)
来源: 互联网 发布时间:2014-10-18
本文导语: 问题:从c++文件中将std:string转换为char*后,返回包含IP地址的char*,需要将该字符串char*中的IP地址提取出来; 解决办法:1. 解决思路:IP地址最长为12字符+3句点=15字符,一般性表示为192.168.111.111;可以从第一个字符开始解析,...
问题:
从c++文件中将std:string转换为char*后,返回包含IP地址的char*,需要将该字符串char*中的IP地址提取出来;
解决办法:
1. 解决思路:
IP地址最长为12字符+3句点=15字符,一般性表示为192.168.111.111;
可以从第一个字符开始解析,当不是'.'时,将所有字符保存下来,然后把所有保存下来的字符转换为16进制就可以了;
2. 程序如下:
代码如下:
typedef struct {
char addr_ipv4[4];
} IPADDR_IPV4;
#include
// Function: To extract HEX value of IP address from string expression.
IPADDR_IPV4 parse_IPString(const char *str, u8 strlen) {
IPADDR_IPV4 ipv4;
char tmpBuf[4] = {0};
u8 k;
u8 inx = 0;
u8 j = 0;
// Dprintf("The ch_ip is:%sn", ch_ip);
for (k=0; k