问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言截取字符串问题

发布网友 发布时间:2023-06-26 17:02

我来回答

6个回答

热心网友 时间:2024-11-02 17:45

/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 1024
void main()
{
char *data = "<html><title><//title><body><p>这是想要的字符串!</p><body></html>";//从文件里读的数据
const char *head = "<body><p>", *end = "</p><body";
char buf[N];
memset(buf, 0, sizeof(buf));
strncpy(buf, strstr(data, head) + strlen(head), strstr(data, end) - (strstr(data, head) + strlen(head)));
puts(buf);
getchar();
}

热心网友 时间:2024-11-02 17:45

大致代码如下

char *src;//源代码

char *pStart=strstr(src,"<body><p>")+9;//找到起点
char *pEnd=strstr(pStart,"</p><body>");//找到终点
char pTemp[1024];//顶一个数组保存抽取的东西
pTemp[0]='\0';//添加结尾
strncat(pTemp,pStart,pEnd-pStart);//将要抽取的字符串添加过去追问char *pStart=strstr(src,"")+9,这里加9是什么意思

追答9就是 ""的长度啊 起点应该在 ""后面

热心网友 时间:2024-11-02 17:46

假设要处理的文本位于当前文件加下面,名字是html.txt,下面代码可以在终端上打印你想要的结果。
#include <stdio.h>
#include <string.h>

#define MAXLINE 80

int main()
{
char buf[MAXLINE]; /* for line processing */
char *buf1;
char tag[10]; /* for html tag */
FILE* fp;
int i, j;
int noend;
int find = 0;

if ((fp = fopen("html.txt", "r")) == NULL) {
printf("file open error.\n");
exit(-1);
}
while (fgets(buf, MAXLINE, fp) != NULL) {
for (i = 0, j = 0; buf[i] != '\0'; i++) {
if (buf[i] == '<') {
tag[j] = buf[i];
noend = 1;
}
if (buf[i] == '>') {
tag[j] = buf[i];
noend = 0;
j = 0;
}
if (noend) {
tag[j++] = buf[i];
continue;
} else {
if (!strncmp(tag, "<p>", 3)) { /* find the tag <p> */
buf1 = &buf[++i];
find = 1;
break;
}
}
}
if (find) /* find the <p> .* </p> line */
break;
}
for (i = 0; buf1[i] != '<'; i++) /* output what we want */
putchar(buf1[i]);
putchar('\n');
return 0;
}

热心网友 时间:2024-11-02 17:47

bool getXMLstr(const char * in_file,const char * in_xmlname,char * out_value) //in_file为文档,in_xmlname为标签内的关键字 out_value 为标签内你要的数值
{
int m_len=strlen(in_xmlname);
char Sxml[20],Exml[20];
snprintf(Sxml,20,<%s>,in_xmlname);
snprintf(Exml,20,</%s>,in_xmlname);
char *start;
char *end;
start=0;
end=0;
start=strstr(in_file,Sxml);
end=strstr(in_file,Exml);
if(start==0||end==0) return FALSE;

int m_valuelen=end-start-m_len-1;

strncpy(out_value,start+m_len+2,m_valuelen-1);
}
大概就是这样了 如果你要得到P标签里面的值 那in_xmlname='p' 自己再看看吧 不懂再追问吧

热心网友 时间:2024-11-02 17:47

大家都说的很详细。

热心网友 时间:2024-11-02 17:48

太深奥了,悄悄溜走吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 上海哪里还有卖《灌篮高手》正版漫画书?主要是买全国大赛的那三本_百度... 今天刚刚到上海,对上海不甚了解,到想知道现在上海的大型动漫中心有 微胖妞微胖女孩怎么穿衣搭配打扮? c语言字符串截取排序问题 有推荐的大学生穿搭博主吗?能给微胖女孩一些建议吗? 上海哪里有卖动漫周边的实体店 黄石第五季第五集什么时候出 征途2道士自然系技能加点,多少级加哪个技能,越详细越好 道士攻略毁灭道士加点、PK心得《征途2》 征途2道士怎么加点 征途2毁灭道士加点,属性加点和技能加点!!! 浅谈老区道士加点及玩法分享征途2 道士、通灵职业主流加点详解征途2 自然系道士加点及玩法攻略征途2 卫生间厕所反味怎么办 荒野行动蹦蹦车开车撞人教程,蹦蹦车撞人! 四月7号是黄道吉日吗 塑钢型材品牌介绍 塑钢型材品牌有哪些 贷款25万15年还完多少利息? 富豪刘銮雄送别霍启刚祖母,走路要人搀扶身体差!曾被曝病危入院_百度... 请问怎样买到《NewType》? 魔兽新超越极限2.43h怎么通关 新超越极限2.43h龙怎么是无敌的 库里绝杀雷霆时,espn主持人说的英语是什么 如何评论库里对雷霆过半场的绝杀 哪里可以下载演出背景方面的视频素材,可以做演唱会和娱乐节目背景... 莫娣| “我们像一对落单的袜子,寻到了彼此” 大丰有几个上海监狱 CNC中2mm的钨钢刀实际加工开粗进给倍率多少合适比较好,,光刀多少合适... 在大丰监狱服刑怎么样 画家和渔夫的爱情 盐城市大丰农场以前关犯人改造的地方现在叫什么 加工中心铣304不锈钢5mm的钨钢刀,一刀下多少合适,转速和进给多少? 盐城方强农场有犯人吗 江苏盐城大丰新东菀小区看守所地址 ...不锈钢深度D4.0钨钢铣刀 深度0.4mm 转速进给给多少合适! 机床是2... 钨钢铰刀的转速和进给 盐城监狱的地理位置 刷到十多年前的前任抖音可以评论吗