第一,判断是否相等用" =="
第二,数组最好规定长度,如果没有规定长度,最好用指针。而且要用动态分配内存。所以你的
void enter(char x[]) //输入函数
这个函数根本就不对,因为数组不能自己动态增长。
第三,你在程序中已经限定了数组的长度是100,那么最好就直接使用x[100]。字符串是以'\0'结尾的,所以,只要读到'\0'就认为字符串结束。所以不需要动态数组。
读的相当纠结。
1.几处判断的=应该改成==
2.思路,我没看懂,感觉很乱。
用result[]来记录结果,
resIndex记录结果的最大值的下标
当长度变大的时候,result[]中下标要重新从0开始记录啊
int resIndex=0;
int tempMaxLength=0;
for(int i=0;str[i]!='\0';)
{
int j=i;
while(str[j]!='\0'&&str[j]==str[i]) j++;
int length=j-i;
if(length>tempMaxLength)
{
resIndex=0;
tempMaxLength=length;
}
result[resIndex].length=length;
result[resIndex].index=i;
result[resIndex].ch=str[i];
resIndex++;
i=j;
}
主要代码就上面那样