strstr函数寻找的时候,是进行字符串匹配
如果用gb2312编码的话,这是一种多字节字节字符集,原理上并不会出现找不到的情况
之所以会这样,可能是查找子串没有设置好
另外strstr或者strchr进行连续查找的时候,一定要不断的修改源字符串地址,将找过的字符串略过
#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.之后进行字符数组的处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)