指定关键词,在一段文本中搜索并在关键词前后进行插入自定义字符串

这篇博客介绍了一段代码,它能根据指定的关键词,在文本中找到这些关键词并用HTML的b标签进行加粗处理。例如,将'美国队长'和'蜘蛛侠'加粗,使得'我是蜘蛛侠,我从小就活泼好动,还抢过美国队长的盾'这样的句子得以突出。

分享自己写的一段代码。该代码可以实现如下的功能:

输入“我是蜘蛛侠,我从小就活泼好动,还抢过美国队长的盾“这句话,并且指定关键词【美国队长, 蜘蛛侠】,在关键词的前后增加html标签b来进行加粗。

得到输出“我是蜘蛛侠,我从小就活泼好动,还抢过美国队长的盾“

调用方法

input_str = "我是蜘蛛侠,我从小就活泼好动,还抢过美国队长的盾"
keyword_list = ["美国队长", "蜘蛛侠"]
output = search_and_add(input_str, keyword_list, "<b>", "</b>")
print(output)
from operator import itemgetter

def search_and_add(input_str, str_list, prefix, suffix)
参考资源链接:[C语言数据结构:串插入操作详解及实例](https://wenku.youkuaiyun.com/doc/1newums1wv?utm_source=wenku_answer2doc_content) 在C语言中,字符串可以通过字符数组表示,而为了实现更为复杂的数据结构操作,如插入、拼接等,我们可以定义一个自定义字符串数据结构HString,它通常包含一个指向字符数组的指针和一个表示字符串长度的整型变量。针对您的问题,串的插入操作需要考虑内存分配、字符串长度调整和字符数组内容的复制等关键步骤。 实现自定义字符串数据结构的关键在于合理使用内存分配函数如malloc和realloc,以及字符串函数如strcpy等。例如,对于插入操作,首先需要检查插入位置是否有效,然后调整目标字符串S的长度和内存空间以容纳新字符串T,接着使用 strcpy 或类似函数将新字符串T的内容复制到目标字符串S中正确的位置。 下面是一个简化的插入函数实现示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char *ch; int length; } HString; // 函数声明 Status StrInsert(HString *S, int pos, HString T); // 插入操作实现 Status StrInsert(HString *S, int pos, HString T) { if (pos < 1 || pos > S->length + 1) { return ERROR; // 插入位置不合法 } if (pos == S->length + 1) { // 在末尾插入 int newLength = S->length + T.length; char *newStr = (char *)realloc(S->ch, (newLength + 1) * sizeof(char)); if (!newStr) return ERROR; // 内存分配失败 strcpy(newStr + S->length, T.ch); S->ch = newStr; S->length = newLength; } else { // 在中间插入 int newLength = S->length + T.length; char *newStr = (char *)malloc((newLength + 1) * sizeof(char)); if (!newStr) return ERROR; // 内存分配失败 strncpy(newStr, S->ch, pos - 1); strcpy(newStr + pos - 1, T.ch); strcpy(newStr + pos - 1 + T.length, S->ch + pos - 1); S->ch = newStr; S->length = newLength; } return OK; } // 注意:这里假设Status和ERROR/OK是预先定义好的状态码 ``` 这段代码首先检查插入位置的有效性,然后根据位置的不同调整目标字符串S的内存分配,将T的内容复制到S中正确的位置。这是一个基础的实现,实际应用中可能需要更多的错误处理和边界条件考虑。 通过阅读《C语言数据结构:串插入操作详解及实例》,你可以更深入地理解如何在C语言中处理字符串数据结构,掌握基本函数声明与功能的实现,以及函数实现细节,包括内存管理等关键点。学习这些基础知识对于编写复杂的文本处理程序和使用C语言进行高效开发至关重要。 参考资源链接:[C语言数据结构:串插入操作详解及实例](https://wenku.youkuaiyun.com/doc/1newums1wv?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值