#include
#include
#include
using namespace std;
#define MAXLEN 1000
int main()
{
int i, j, N, NC, count, flg1, flg2;
cin >> N >> NC;
string str;
cin >> str;
char * a[MAXLEN],*temp;
for (i = 0; i < MAXLEN; i++)
a[i] = new char[N+1];
temp = new char[N + 1];
flg1 =flg2= 0;
int len = str.size();
for (i = count = 0; i < len-N+1; i++)
{
if (flg1 == 0)
{
for (j = 0; j < N; j++)
a[count][j] = str[i+j];
a[N] = '\0';
count++;
flg1 = 1;
continue;
}
for (j = 0; j < N; j++)
temp[j] = str[i + j];
temp[N] = '\0';
for (j = 0; j < count; j++)
if (strcmp(temp, a[j]) == 0)
{
cout << "hahaha" << endl;
flg2 = 1;
break;
}
cout << count << endl;
if (flg2 == 0)
{
for (j = 0; j < N; j++)
a[count][j] = temp[j];
a[count][N] = '\0';
count++;
}
flg2 = 0;
}
cout << count << endl;
return 0;
}
这是一个程序,输入字符串str,找出str中有多少个不同的字符子串
N是字串的长度,NC是str里面不同字母的种数(我没用到)
count是一个变量,表示不同的子串的个数
现在问题来了,我在循环里面加了测试语句,每次都是count=3的时候给我报错,我真的不懂为什么会这样,还求各位高手指点指点
你输入的n是多少?