#002#人人笔试题 截取html字符串

C实现

截取html

设定是html字符串里只有<p>标签,且闭合

输入:"abc<p class=‘c1‘>defg</p>hijk<p style=‘width=100px;‘>lmn</p>"

截取3个字符

输出:abc

截取4个字符

输出abc<p class=‘c1‘>d</p>

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 char * htmlSource="abc<p class=‘c1‘>defg</p>hijk<p style=‘width=100px;‘>lmn</p>";
 5 char * GetSubString(char* Source,int length)
 6 {
 7     int htmlLength=0;
 8     for(int i=0;i<strlen(Source);i++)
 9     {
10         if(Source[i]==‘<‘)
11         {
12             while(Source[i]!=‘>‘)
13                 i++;
14         }
15         else
16             htmlLength++;
17     }
18     if(length>htmlLength)
19     {
20         printf("截取长度过长\n");
21         return NULL;
22     }
23     else
24     {
25         char* target=(char *)malloc(sizeof(char)*(strlen(Source)+1));
26         int sum1=0;
27         int sum2=0;
28         int flag=0;
29         for(int i=0;i<length;i++)
30         {
31             if(Source[sum2]==‘<‘)
32             {
33                 if(Source[sum2+1]==‘p‘)
34                     flag=1;
35                 else if(Source[sum2+1]==‘/‘)
36                     flag=0;
37                 do
38                 {
39                     target[sum1++]=Source[sum2++];
40                 }
41                 while(Source[sum2]!=‘>‘);
42                 target[sum1++]=Source[sum2++];
43                 target[sum1++]=Source[sum2++];
44             }
45             else
46             {
47                 target[sum1++]=Source[sum2++];
48             }
49         }
50         if(flag==1)
51         {
52             target[sum1++]=‘<‘;
53             target[sum1++]=‘/‘;
54             target[sum1++]=‘p‘;
55             target[sum1++]=‘>‘;
56             flag=0;
57         }
58         target[sum1]=‘\0‘;
59         return target;
60     }
61 }
62 void main()
63 {
64     int length=0;
65     while(length!=-1)
66     {
67         printf("输入截取长度\n");
68         scanf("%d",&length);
69         char * target=GetSubString(htmlSource,length);
70         printf("%s\n",target);
71         free(target);
72     }
73 }

#002#人人笔试题 截取html字符串,布布扣,bubuko.com

时间: 2024-12-25 15:28:33

#002#人人笔试题 截取html字符串的相关文章

#001#人人笔试题 输入数字转化为汉字

Java实现 1 package test001; 2 import java.util.Scanner; 3 4 //输入530014 输出五十三万零一十四 5 //int 型数据最大值为 21 4748 3647 二十一亿 四千七百四十八万 三千六百四十七 6 //int 型数据最小值为-2147483647 7 public class file1 { 8 static String[] numArray={"零","一","二",&quo

去哪儿2015笔试题:寻找字符串的差异

去哪儿的一道笔试题. 给定两个字符串a,b:找出两个字符串中不一样的字符串.如存在于a而不存在于b,则将该字符输出,同时.加一个"-"标记:若存在于b而不存在于a,则输出该字符,同时以"+"标记.若是同时存在于a.b中,则不输出.假设字符串是由字母组成. 如: a="abc",b="aabcbc",则输出为"+a,+b,+c": a="abcde",b="bcdef"

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数. 函数接口声明如下:int my_strlen(const char *p); strlen函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'. 而返回的长度大小不包括'\0'. #include <stdio.h> #include <assert.h> //使用中间变量 //int my_strlen(const  char *str) //{ //   ass

新浪笔试题之删除文本中词频最小的所有字符串

时间:2014.06.04 地点:基地二楼 -------------------------------------------------------------------------------- 一.题目 题目大概是这样纸的,一个文本文件,里面有好多字符串,要求删除在整个文本中出现频率最少的字符串,如果这个最小值对应的字符串有很多,则都删除,结果是输出一个文本,保留下来的字符串用 '\t' 符号分割. ------------------------------------------

2014年阿里巴巴在线笔试题-第3大题-公共最长字符串长度

说明 2014年阿里巴巴在线笔试题-第3大题    首先,我没参加这次的阿里巴巴在线笔试题,题目全部是从别人口中描述而来,对于以下的分析,如果有什么不对的地方还望指教.也希望大家能够有更好的办法,希望大家来能不吝赐教. 题目描述 给定一个主字符串和一个匹配字符串,现在问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比较绕,举个例子吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就是 

2014华为实习上级笔试题-- 统计字符串中出现的单词

#include<iostream> //#include<string> using namespace std; struct node { char word[10]; int num; }; node obj[100]; void my_word(char input[], char output[]) { int sum=0,flag=0; int i=0,j=0,k=0; while(input[i]!='\0')///////////读入单词 { if((input[

2014阿里巴巴网上笔试题-文章3大标题-公共最长的字符串长度

说明 2014阿里巴巴网上笔试题-文章3大标题    首先.我没有参加阿里巴巴网上笔试题,所有的主题是叙述性说明来自别人.的分析.假设有什么不正确的地方还望不吝赐教. 也希望大家可以有更好的办法,希望大家来能不吝赐教. 题目描写叙述 给定一个主字符串和一个匹配字符串.如今问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比較绕.举个样例吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”. 一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串-------------->按照字节[byte]截取操作字符串,先将String转换成byte类型 .2.汉字不可以截半----------------------------------

经典的阿里前端笔试题

1 请说明下面各种情况的执行结果,并注明产生对应结果的理由. function doSomething() { alert(this); } ① element.onclick = doSomething,点击element元素后. ② element.onclick = function() {doSomething()}, 点击element元素后. ③ 直接执行doSomething(). 参考答案: 1.element:调用执行时直接指向事件元素. 2.window:函数调用中的 thi