Code Bye

c 语言关于 char *strtok 字符串截取

#include <stdio.h>
#include <string.h>
#include “fke_base.h”
#include “fke_debug.h”

int Fke_DetectSmtpFunc(NbfkePacket *pkt,
                                           struct pcap_pkthdr* header,
                                            char *pCont,
                                            int iContLen,
                                            Fkefn_DetectSearch fnObjSearch)
{
        if(iContLen <= 0)
        {
                return FKE_ERROR;
        }
}       
        我已经抓到了smtp的协议包,pCont是包的数据。
     现在,我需要拿出 包里的收发件人的地址。eg:mm@.com   在一段数据中,如何截取我需要的格式的内容,最好精巧些 的算法。linux  c

5分
static char t[50+1];
strncpy(t,s+123,50);t[50]=0;
35分
原型:char *strtok(char *s, char *delim);

功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
           strtok在s中查找包含在delim中的字符并用NULL(“”/0″”)来替换,直到找遍整个字符串。

返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
           所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
例如 xxxxxxxx,eg:mm@.comxxxxxxxxxxxxxxxxxxxxxx.
需要你找出收发件人的地址开始的共同特征. 比如所有的地址前都是eg: 
1. 可以用一次strtok, eg: 得到 xxxxxxxx,eg 和 mm@.comxxxxxxxxxxxxxxxxxxxxx
2. 再用一次strtok, com . 得到mm@.com 和 xxxxxxxxxxxxxxxxxxxxx


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c 语言关于 char *strtok 字符串截取