文章下方附学习资源,自助领取。前言 本篇在此基础上,编写一个简单的用于解析url的小例子,最终目标是解析出URL中所有的数据信息。
3年嵌入式物联网学习资源整理分享:C语言、Linux开发、数据结构;软件开发,STM32单片机、ARM硬件开发、物联网通信开发、综合项目开发教程资料;笔试面试真题。
点击下方插件免费领取↓↓↓
2. strstr头文件#include
函数定义char *strstr;
函数说明查找 substr 所指的空终止字节字符串在 str 所指的空终止字节字符串中的首次出现。不比较空终止字符。若 str 或 substr 不是指向空终止字节字符串的指针,则行为未定义。
参数str :指向要检验的空终止字节字符串的指针substr :指向要查找的空终止字节字符串的指针
返回值指向于 str 中找到的子串首字符的指针,或若找不到该子串则为空指针。若 substr 指向空字符串,则返回 str 。
3. strtok函数定义 char *strtok
功能分解字符串 str 为一组字符串,delim 为分隔符
参数str -- 要被分解成一组小字符串的字符串。delim -- 包含分隔符的 C 字符串。
返回值该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
4. strncpy函数说明char *strncpy
功能将src指向的字符串拷贝到dest执行的内存中,最多拷贝n个字符
参数dest -- 指向用于存储复制内容的目标数组。
src -- 要复制的字符串。n -- 要从源中复制的字符数。
返回值该函数返回最终复制的字符串。
5. inet_pton/inet_ntop头文件#include #include #include
函数声明#include int inet_pton;
功能:将点分十进制的ip地址转化为用于网络传输的数值格式对于IPv4地址和IPv6地址都适用
参数family:协议类型既可以是AF_INET(ipv4)也可以是AF_INET6(ipv6)。如果,以不被支持的地址族作为family参数,这两个函数都返回一个错误,并将errno置为EAFNOSUPPORT.strptr:指向点分十进制的IP地址字符串,比如"192.168.1.1"addrptr:转换结果存放在addrptr中,比如"192.168.1.1"转换为:0xC0A80101addrptr类型为:struct in_addr typedef uint32_t in_addr_t;struct in_addr {in_addr_t s_addr;};
返回值若成功则为1,若输入不是有效的表达式则为0,若出错则为-1const char * inet_ntop;
功能将数值格式转化为点分十进制的ip地址格式,从数值格式(addrptr)转换到表达式(strptr),
返回值若成功则为指向结构的指针,若出错则为NULL
6. gethostbyname函数的定义#include struct hostent * gethostbyname;
功能解析hostname指向的域名,该函数会将该域名封装到DNS协议包中,发送给DNS服务器,DNS服务器会将该域名对应的地址返回,存储在struct hostent中
参数hostname :存储域名对应的字符串。