| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:字符串分割和连接出现一个诡异的问题无法解决
只看楼主 加入收藏
jidipiaoyu
Rank: 1
等 级:新手上路
帖 子:79
专家分:3
注 册:2008-12-5
结帖率:55.56%
收藏
已结贴  问题点数:0 回复次数:3 
字符串分割和连接出现一个诡异的问题无法解决
char* IP   =   "192.168.1.24";
char* IP1=strstr(IP,".")+1;
char *p1 = strtok(IP, ".");
char* IP2=strstr(IP1,".")+1;
char *p2 = strtok(IP1, ".");
char *p3 = strtok(IP2, ".");
char* ipend=p1;
ipend=strcat(ipend,".");
ipend=strcat(ipend,p2);
ipend=strcat(ipend,".");
ipend=strcat(ipend,p3);
ipend=strcat(ipend,".");
ipend=strcat(ipend,"255");
运行到最后ipend的值为192..1.255,p2的值莫名其妙就变成空了,请高手指教下。
搜索更多相关主题的帖子: 分割 字符串 
2011-08-30 11:09
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
我明白了 你是想将"192.168.1.24";改为192.168.1.255吧

我的天 那用这么麻烦哦 strtok会破坏参数1的完整性的

从后面往前找
或者直接转化为16进制后再改
    char p[] = "192.168.1.23";
    char ipsend[20] = {0};
    char *p1 = p;
    p1 = p1+(_tcslen(p));

    for(;p1!=p;p1--){
        if(*p1 == '.'){
            memcpy(ipsend,p,p1-p);
            ipsend[p1-p] = '.';
            _tcscat(ipsend,"255");
            break;
        }
    }

    printf("%s\n",ipsend);
2011-08-30 11:23
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:3 
char p[] = "192.168.1.23";
    in_addr i;
    i.S_un.S_addr = inet_addr(p);
    i.S_un.S_un_b.s_b4 = 255;
2011-08-30 11:35
jidipiaoyu
Rank: 1
等 级:新手上路
帖 子:79
专家分:3
注 册:2008-12-5
收藏
得分:0 
回复 3楼 hahayezhe
多谢大侠,两个方法都可以用,谢谢啦!
2011-08-30 11:52
快速回复:字符串分割和连接出现一个诡异的问题无法解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved