哪个方法可以统计出某词语在一段文本中出现的次数
寻找文本只能找到第一个的位置,如何找到总共出现多少次#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 函数声明
int countWord(const char *text, const char *word);
int main() {
char text; // 假设文本最大长度为 1000 个字符
char word; // 假设词语最大长度为 50 个字符
printf("请输入一段文本(按回车结束):\n");
fgets(text, sizeof(text), stdin);
printf("请输入要统计的词语:\n");
fgets(word, sizeof(word), stdin);
// 将文本和词语转换为小写
for (int i = 0; text != '\0'; i++) {
text = tolower(text);
}
for (int i = 0; word != '\0'; i++) {
word = tolower(word);
}
// 调用函数统计词语出现次数
int count = countWord(text, word);
printf("词语 \"%s\" 在文本中出现的次数是:%d\n", word, count);
return 0;
}
// 函数实现
int countWord(const char *text, const char *word) {
int count = 0;
int wordLength = strlen(word);
while (*text) {
// 跳过前导空白字符
while (*text == ' ' || *text == '\t' || *text == '\n') {
text++;
}
// 检查是否找到了整个词语
if (strncmp(text, word, wordLength) == 0) {
count++;
// 跳过整个词语
text += wordLength;
} else {
// 跳过一个单词的长度
text++;
}
}
return count;
}
承易 发表于 2024-7-14 22:48
#include
#include
#include
人问的是安卓 不断的基于现有位置+1找就行,直到返回-1 承易 发表于 2024-7-14 22:48
#include
#include
#include
看这架势,不断循环查找就是了,我还以为有一两个方法就能搞定了 hcwanz 发表于 2024-7-14 23:00
不断的基于现有位置+1找就行,直到返回-1
循环查找就是了 就是循环查找啊,没别的办法。 public class TextCount {
public static void main(String[] args) {
String mainText = "这是一个示例文本,示例文本将用于统计某个特定文本的出现次数。请看示例文本。";
String searchText = "示例文本";
// 使用split方法计算searchText在mainText中出现的次数
// 注意:split方法会根据提供的正则表达式分割字符串,并返回一个数组
// 这里使用searchText作为正则表达式,并且添加了Pattern.LITERAL标志
// Pattern.LITERAL标志意味着特殊字符将被视为普通字符,不使用正则表达式
int count = mainText.split(Pattern.quote(searchText), -1).length - 1;
// 输出结果
System.out.println("The text \"" + searchText + "\" appears " + count + " times.");
}
}
不会封装到火山,这个得其他人封装了
import java.util.regex.Pattern;
public class TextCounter {
/**
* 统计searchText在mainText中出现的次数。
*
* @param mainText 原文本
* @param searchText 要查找的文本
* @return 出现次数
*/
public static int countOccurrences(String mainText, String searchText) {
if (searchText == null || searchText.isEmpty()) {
return 0;
}
// 使用Pattern.quote来避免searchText中的正则表达式特殊字符
return mainText.split(Pattern.quote(searchText), -1).length - 1;
}
public static void main(String[] args) {
String mainText = "这是一个示例文本,示例文本将用于统计某个特定文本的出现次数。请看示例文本。";
String searchText = "示例文本";
// 调用方法并获取出现次数
int count = countOccurrences(mainText, searchText);
// 输出结果
System.out.println("The text \"" + searchText + "\" appears " + count + " times.");
}
}
// 调用方法并获取出现次数
int count = countOccurrences(mainText, searchText);
作成参数了 原文,要找的文本,返回出现的次数,
然而不会在火山中调用JAVA代码,也不会调用JAR包,
尝试了下 依然不会封装,没入门
无奈官方人力不够,而生态暂时又不强大,会封装的没时间,想封装的又不会,而封装的说明文档有门槛 不适合新手,易语言到火山的跨越 我觉的有点大,当然这是大势所趋,可是用户无法适应,火山是一个新的语言 得重新学,易的东西过来只是一部分,还要增加一定的学习成本,而易语言现在依然活跃,所以很多人暂时不转行火山,没人就没江湖,就没人造轮子 没人搞技术 发动不了江湖的力量
页:
[1]
2