C程序求助,十分感谢。

KAIDILIGENT 2009-05-21 09:14:57
本人解析IP的时候出现了问题,请教高人,给解答下,不胜感激。

#include <stdlib.h>
#include <string.h>
/* Parse an addr/port/ttl string. */


static int hpt(char *h, char *port, unsigned char *ttl)
{
char *s;

/* 定位端口开始的字符 */

printf("%c",*s);
if (!s) {
return -1;
}
else {*s = '\0';
*port = atoi(s+1);/*取端口开始的字符*/
s = strchr(s+1, '/');
if (s && ttl) {
*ttl = atoi(s+1);
}

}
return 0;
}

void main()
{
char *port,*ttl;
char *ip="10.10.143.123/8000/100";
hpt(ip,port,ttl);

printf("%s,%s\n",port,ttl);

}


发现这条语句是引起程序崩溃的原因。

else {*s = '\0';
*port = atoi(s+1);/*取端口开始的字符*/
s = strchr(s+1, '/');
if (s && ttl) {
*ttl = atoi(s+1);
}
但是不知道怎么改,请高人帮助一下,谢谢了。
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iitoop 2009-05-22
  • 打赏
  • 举报
回复
...
dalianzsl 2009-05-21
  • 打赏
  • 举报
回复
你所写的程序中,所用到的两个函数你全用错了。还有你的程序中的
char *s;

/* 定位端口开始的字符 */

printf("%c",*s);
要改为
char *s=h;
for(int i=0;s[i]!='\0';i++)
{
printf("%c",s[i]);
}
详细的明天再告诉你,今天我要休息了。
xhy_851221 2009-05-21
  • 打赏
  • 举报
回复
up
shinefree2004 2009-05-21
  • 打赏
  • 举报
回复

#include <stdlib.h>
#include <string.h>

typedef struct
{
char ip_add[20];
char port[10];
char ttl[10];
}IP_INFO;


void main()
{
IP_INFO ip_info;
char *ip;

memset(&ip_info, '\0', sizeof(ip_info));
ip = "10.10.143.123/8000/100";
sscanf(ip, "%[^/]/%[^/]/%s", ip_info.ip_add, ip_info.port, ip_info.ttl);
printf("ip address:%s\nport:%s\nttl:%s\n", ip_info.ip_add, ip_info.port, ip_info.ttl);

}
nicholasfly 2009-05-21
  • 打赏
  • 举报
回复
printf("%c",*s);

……
majun01 2009-05-21
  • 打赏
  • 举报
回复
static int hpt(char *h, char *port, unsigned char *ttl) 
{
char *s; ///////////////////////////////未指向有效空间

/* 定位端口开始的字符 */

printf("%c",*s);
if (!s)
liao05050075 2009-05-21
  • 打赏
  • 举报
回复
char *s;

/* 定位端口开始的字符 */

printf("%c",*s); //在这里,s的值未定,是个野指针,你不应该在这里printf它
if (!s) {
return -1;
}
else {*s = '\0';
*port = atoi(s+1);//此时,s是个空串,你试图把它转成数字,这当然出错了。
s = strchr(s+1, '/');
if (s && ttl) {
*ttl = atoi(s+1);
}
hw324306893 2009-05-21
  • 打赏
  • 举报
回复
MARK

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧