首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

啊快脑子炸了,字符串的有关问题。

2012-11-19 
求救啊,快脑子炸了,字符串的问题。。。。艹啊,网速能不能给力点,发这个就发了三遍了。。。我的任务是解析一段客户

求救啊,快脑子炸了,字符串的问题。。。。
艹啊,网速能不能给力点,发这个就发了三遍了。。。

我的任务是解析一段客户机发来的字符串,这段字符串包含了一个或者多个信息段,信息段之间用分号隔开,每个信息段有下面的几个字段,字段之间用逗号隔开,怎么解析这段字符串(注意是字符串),解析成下面的结构体形式。

C/C++ code
struct recived_st{    unsigned char client_id[40];    unsigned int client_ip;    unsigned short client_port;    unsigned int tunnel_ip;    unsigned short tunnel_port;    unsigned int app_ip;    unsigned short app_port;    long time;    unsigned short index_port;};


————————————————————

[解决办法]
C语言的话就用strtok按照","解析字符串。
解析出字符串后再使用strcpy(), atoi(), atol()函数为结构体对象赋值。

两个帖子,就两个回复。
[解决办法]
探讨

引用:

C语言的话就用strtok按照","解析字符串。
解析出字符串后再使用strcpy(), atoi(), atol()函数为结构体对象赋值。

两个帖子,就两个回复。


但是消息之间是用分号间隔的啊。

[解决办法]
客户端是谁做的?
能改设计吗?
真心的,用二进制流来传输数据更好!
因为这是机器之间的交流
不牵扯到人的交流
[解决办法]
那就先用strtok找";".
或者用strchr()自己查找位置。然后解析。

其实很少用字符串传数据的,都是用二进制流传,性能高很多。
如果要用字符串,还不如用json。让json来解析数据。
要不就用protobuf。
=======================================================
这样比较合理。
如果没有办法改成这样的方法。
那就递归下降的方法来解析,
每次读取一个“;”的数据,
然后再解析这段数据。
[解决办法]
三步:
1、解析码流,以;为标记取出信息段;
2、解析信息段,以,为标记取出字段码流;
3、分析各字段的合法性,并翻译之后,填入结构体变量。

热点排行