在C语言中,实现字符串中敏感词过滤的一种方法是使用字符串匹配算法,例如KMP算法
#include<stdio.h>
#include<string.h>
void filter_sensitive_words(char *text, const char *sensitive_words[], int num_of_words) {
for (int i = 0; i < num_of_words; i++) {
char *sensitive_word = sensitive_words[i];
char *found = strstr(text, sensitive_word);
while (found != NULL) {
int length = strlen(sensitive_word);
memset(found, '*', length);
found = strstr(text, sensitive_word);
}
}
}
int main() {
char text[] = "这是一个测试文本,包含一些敏感词,例如:苹果、香蕉和橙子。";
const char *sensitive_words[] = {"苹果", "香蕉", "橙子"};
int num_of_words = sizeof(sensitive_words) / sizeof(sensitive_words[0]);
printf("原始文本: %s\n", text);
filter_sensitive_words(text, sensitive_words, num_of_words);
printf("过滤后的文本: %s\n", text);
return 0;
}
在这个示例中,我们定义了一个filter_sensitive_words
函数,它接受一个字符串(text
)和一个敏感词数组(sensitive_words
)作为参数。函数遍历敏感词数组,并使用strstr
函数查找字符串中的敏感词。如果找到敏感词,它会使用memset
函数将敏感词替换为星号(*)。
在main
函数中,我们创建了一个包含敏感词的字符串和一个敏感词数组。然后,我们调用filter_sensitive_words
函数来过滤敏感词,并在过滤前后打印字符串。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。