欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

函数 —— strchr() 例如:字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值

发布时间:2025/10/17 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 函数 —— strchr() 例如:字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
char *strchr(const char *str, int c)

/*功能:
 * C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。*/
/*参数:
 * str -- 要被检索的 C 字符串。
 * c -- 在 str 中要搜索的字符。*/
/*返回值:

 * 该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL*/

int main() {const char str[] = "http://www.runoob.com";const char ch = '.';char *ret;ret = strchr(str,ch);printf("|%c| 之后的字符串是 - |%s|\n",ch,ret); //|.| 之后的字符串是 - |.runoob.com|return 0; }


解决问题:

    字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值

        当字符串中没有‘|’或者字符串为空时候,ip与mac的值 赋值为 ‘-’。

#include<stdio.h> #include<string.h> int ExtractIpMac(const char* buf,char* ip,char* mac) {char *p = NULL;char *q = NULL;int len = strlen(buf);if(len <= 0)goto IPMACErr;q = strchr(buf,'|');if(q == NULL)goto IPMACErr;printf("q-buf=%d\n",q-buf);//11printf("len-(q-buf+1)=%d\n",len-(q-buf+1));//17strncpy(ip,buf,q-buf);strncpy(mac,q+1,len-(q-buf+1));return 0;IPMACErr:printf("bb\n");strncpy(mac,"-",1);strncpy(ip,"-",1); } int main() { // char buf[] = "";char buf[] = "192.168.1.2|00:11:22:33:44:55";char ip[32];char mac[32];printf("strlen(buf) = %d\n",strlen(buf));//29ExtractIpMac(buf,ip,mac);printf("buf=%s ip=%s mac=%s\n",buf,ip,mac); //buf=192.168.1.2|00:11:22:33:44:55 ip=192.168.1.2 mac=00:11:22:33:44:55return 0; }

总结

以上是生活随笔为你收集整理的函数 —— strchr() 例如:字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。