c处理字符串,输出时尾部总带随机乱码

topdogs 发布于 2016/08/30 17:24
阅读 510
收藏 0

我的开发环境是virtualbox下的lubuntu,编辑器是vscode。

看我用vscode就知道我是个写c#的,对c不太懂,最近用c写一个使用libcpap来抓取http包的小软件,但是抓取到后,输出文本总会随机的在字符串尾部有多余的字符出现,处理了好久都无法解决,所以发帖来请教各位。

代码我放在了git.oschina.net ,地址:http://git.oschina.net/lixin/httpSniff

出现的问题效果是这样的:

关键的代码如下:

host_len=i-host_index;
            u_char url[host_len+path_len];
            
            memcpy(url,payload+host_index,host_len);
            memcpy(url+host_len,payload+path_index,path_len);
            FILE *fp=fopen("/home/lixin/httpsniff.txt","at");
            fputs(url,fp);
            fputs("\r\n",fp);
            // fputs(payload,fp);
            fputs("\r\n-----------------\r\n",fp);
            fclose(fp);

            return  ;



加载中
0
大梦1107
大梦1107

不就是内存没初始化。。

u_char url[host_len+path_len] = {0};

0
topdogs
topdogs

答案已经出来了,问题解决

输出字符串的时候,最后一个字节应该是“\0"。所以代码应该改为:

char *url[n+1];

url[n]='\0';

返回顶部
顶部