【发布时间】:2012-10-03 01:25:34
【问题描述】:
我必须计算一个特定 C 字符串在一个更大的字符串中出现的次数。我正在使用 strstr() 函数在大 C 字符串中使用 char 指针进行计数和前进。问题是它似乎计数得太少,就像文本的减少速度越来越快,跳过了大块的字符。我正在使用一个名为“x”的 int 类型变量来从左到右“减少”文本,但我不知道分配新值是否存在问题。
int x=0;
while((p=strstr(text+x,triG))!=NULL)
{
v[i]++;
x+=x+3+(p-(text+x));
}
文本是 char* 类型,动态分配。 triG 是 char[4] 类型,p 是 char* 类型。
【问题讨论】:
-
text和triG的内容除了triG的最大长度有什么限制吗?例如,您是否需要在“aaaaaaaaaa”中查找所有出现的“aaa”? ;-)