[英]Calculating number of a specific substring from a string in C
我有一个字符串,我把从一个相当大(500MB)的文本文件中读取的所有字符放在其中。 下面给出了我如何阅读 .txt 文件。
long fsize(FILE *fp) {
fseek(fp, 0, SEEK_END);
long bytes = ftell(fp);
rewind(fp);
return bytes;
}
char *filecontent='\0';
FILE *fp;
fp=fopen(file.txt,"r");
long size = fsize(fp);
fcontent = malloc(size);
fread(fcontent, 1, size, fp);
`
fcontent指向应采用以下格式的字符串:
matrix
trivial
bigbash
tropical
swalloed
.
.
.
现在我需要计算来自fcontent的子字符串的出现次数,例如 'ba' 。 由于文本文件中的每一行都包含一个单词,并且子字符串搜索应仅限于该单词,如何只从fcontent 中选择 matrix、trivial、bigbash ...一次一个单词?
这里有一个算法给你:
您的文件每行包含一个单词。 您读取整个文件,然后尝试通过换行符来打破结果字符串。
更简单的过程是使用 getline() 逐行读取文件。
然后使用 strstr 在每个单词中搜索您的子字符串。
http://www.cplusplus.com/reference/string/string/getline/?kw=getline
http://www.cplusplus.com/reference/cstring/strstr/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.