c语言提取html标签内容

html-css022

c语言提取html标签内容,第1张

#include <stdio.h>

#include <math.h>

void fetch_str(char *str_in, char *str_out)

int main(){

char test[] = "<a>This is the <...>string</a>"

char result[256]

fetch_str(test, result)

printf("\ntest\t=%s\n", test)

printf("\nresult\t=%s\n",result)

return 1

}

void fetch_str(char *str_in, char *str_out)

{

char begin_str[] = "<a>"

char end_str[] = "</a>"

int index_end =0

int index_begin=0

int flag_begin =0

int flag_end =0

int str_index=0

int i

// to find the max index of str_in

while(str_in[str_index]!='\0')

{

str_index++

}

str_index--

//printf("%s %s", begin_str, end_str)

int count=0

while(str_in[count]!='\0')

{

// to find the begin index of the target string

if( flag_begin==0 &&count<=(str_index-2) )

{

if( str_in[count]==begin_str[0] &&str_in[count+1]==begin_str[1] &&str_in[count+2]==begin_str[2] )

{

flag_begin=1

index_begin=count+3

}

}

// to find the end index of the target string

//if( flag_end==0 &&count<=(str_index-3) )

if(count<=(str_index-3) )

{

if( str_in[count]==end_str[0] &&str_in[count+1]==end_str[1] &&str_in[count+2]==end_str[2] &&str_in[count+3]==end_str[3])

{

flag_end=1

index_end=count-1

}

}

count++

}

//printf("\nbegin_index=%d, end_index=%d\n", index_begin, index_end)

// to copy the target string to str_out

count=0

for(i=index_begini<=index_endi++)

{

str_out[count]=str_in[i]

count++

}

str_out[count]='\0'

return

}

1. 首先定义一个File 的变量

2.然后用

FILE *fopen(

const char *filename,

const char *mode

)

这个函数读入 html 文件

3.用这个读入文件内容

size_t fread(

void *buffer,

size_t size,

size_t count,

FILE *stream

)

4.之后进行字符数组的处理

小弟不才 没怎么研究过C++

我能想到的方法 就是 用IO操作吧HTML的文本全部读入进来

然后 你用正则或者什么别的方法

找到<table></table>然后在找到<tr></tr>然后在找到<td></td>然后自己去找想要的值吧