字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...
c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下
问题:从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:%s\n", ch_ip);
for (k=0; k
if (str[k] != '.') {
// Dprintf("k-inx: %d\n", k-inx);
memcpy(&tmpBuf[k-inx], &str[k], 1);
}
else {
inx = k + 1;
// Dprintf("inx: %d, tmpBuf: %s\n", inx, tmpBuf);
ipv4.addr_ipv4[j++] = strtol(tmpBuf, NULL, 10);
memset(tmpBuf, 0, sizeof(tmpBuf));
continue;
}
// Dprintf("tmpBuf: %s\n", tmpBuf);
ipv4.addr_ipv4[j] = strtol(tmpBuf, NULL, 10);
}
// Dprintf("ipv4 is: ");
// for (k=0; k
// Dprintf("%d", ipv4.addr_ipv4[k]);
// }
// Dprintf("\n");
return ipv4;
}
应用如下:
char* ch_ip = NULL;
IPADDR_IPV4 ipv4Addr;
ch_ip = (char*)malloc(16);
memset(ch_ip, 0, 16);
// parse IP address
ch_ip = getIPAddr();
// convert IP address from string to HEX expression
ipv4Addr = parse_IPString(ch_ip, strlen(ch_ip));
3. 注意事项:原来进行字符比较的时候,用的是if (str[k] != ".")而不是if (str[k] != '.'),结果一直不对。
后来反复 查找原因,才知道单引号''和双引号“”的区别:
(1)。含义不同。单引号引起的一个字符代表一个整数,整数值对应于该字符在ASCII字符集中的序列值;
双引号引起的都是字符串,哪怕只有一个字符也是字符串,双引号引起的一个字符代表一个指向无名数组起始字符的指针;
比如:'.'代表十进制46,十六进制0x2E;
而"."代表指向起始字符为"."的某数组的指针;
(2)。大小不同。单引号引起的一个字符大小就是一个字节;
双引号引起的一个字符大小是两个字节,因为双引号引起的字符串会在字符串的末尾添加一个0x00作为字符串的结束标识。
在本人的程序中正确取到了IP地址。
问题解决。
字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...相关推荐
- 【C语言】从字符串中提取IP地址最简洁的方法
首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)的方法: ([C语言]判断字符串是否为IP地址(IPv4地址是否合法)) #include <stdio.h> #include ...
- C语言从一段字符串中提取IP地址的方法
1. 需求 当前待解析字符串格式为: +CIFSR:STAIP,<Station IP address> +CIFSR:STAMAC,<Station MAC address> ...
- Java使用正则表达式从字符串中提取 IP 地址
import java.util.regex.Matcher; import java.util.regex.Pattern;public class ExtractIP {public static ...
- 字符串中提取IP地址
// 带端口号的IP地址 QStringList getIpAddressAndPort(const QString & strText) {QStringList strList;QRegE ...
- 从字符串中提取IP子串(C语言)
1 目标 ① 从字符串中提取IP子串 ② 验证IP字符串是否合法(IPV4) 2 代码 ① ip地址提取 /*** @brief : IPv4地址提取* @param in_ip : 待提取字符串* ...
- 正则表达式实现提取IP地址字符串
获取IP的话一般使用ifconfig 虽然网上很多用grep或者awk的,但是如果没有这些库的话怎么匹配字符串呢? 提取ip地址我的思路是先system(ifconfig > file) 输出到 ...
- 字符串中查找IP地址的正则表达式
字符串中查找IP地址的正则表达式: IP地址:(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[ ...
- python提取一段字符串中的ip地址
代码如下: #!/usr/bin/env python3 # -*- coding:utf-8 -*-import re import osip_str = os.popen('cat /root/b ...
- 从任何字符串中提取IP
void getHostIP(char* hostIP,const char* sourceStr) { char nbuf[4]; int sn[4]; int i,ret,start,n,m ...
最新文章
- Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
- LeetCode Decode Ways(动态规划)
- mybaits二十三:二级缓存
- python 发送邮件解决所有乱码问题
- HP 3055 恢复出厂
- linux显示界面指令规范,linux的常规操作命令
- 反思学习方法:后推前 前推后
- 使用 VMware + win10 + vs2019 从零搭建双机内核调试环境
- html获取data-*值,html5 获取和设置data-*属性值的四种方法讲解
- js操作select相关方法(收集)
- 【Luogu2085】最小函数值(优先队列)
- 概率论与数理统计——贝塞尔校正(Bessel‘s Correction)
- LIstView和TreeView相关联
- 三菱PLC 串口通信开发心得经验
- 通过AndroidStudio找到数据库文件
- TOM邮箱,那个陪我走过20多年的邮箱
- Tether市值十月下跌超过10亿美元
- window8系统 dns有问题怎么修复,浏览器代理设置,浏览器提示网页无法显示
- 从投资人发现“新大陆”,看“产融星城”为何成?
- 通过ADVICE来实现按功能进行权限控制