写了这样一个函数,为什么第一个循环中for语句会失效?

求教:第一条for语句失效,这是为什么?

 /*函数功能:找出一个字符中相同字符子串的最大长度,暂时还不知道对不对*/
int string_search(char a[])
{
    int i,j;
    int max_len;   // 相同字符子串最大长度
    int every_len;  // 临时存储子串长度
    int all_len;     // 传进来的字符串总长度

    max_len = 1;
    all_len = strlen(a);

    for(i = 0; i < all_len - 1; i+every_len)   // 这里会产生警告信息,语句无作用
    {
        every_len = 1;
        for(j = i+1; j < all_len; j++)
        {
            if(a[i] != a[j])
                break;
            every_len += 1;
        }
        if(max_len < every_len)
            max_len = every_len;
    }

    return max_len;
}

for(i = 0; i < 2 - 1;i=i+every_len){} 并且every_len要初始化一个值

你最好对every_len进行初始化,有一些语言,不会自动初始化int类型,那样你定义的变量可能就是所分配内存中的值,而不是0

是 i=i+every__len。 你看看for 循环的定义吧,我觉得 你这里 用 i++ 就可以了

你在迭代语句i+every_len中并没有改变i的值。所以i永远都是初始值,根本无法构成循环。
写成i+=every_len即可。

还是要养成良好的习惯,内置类型的变量,记得在定义的时候进行初始化,否则程序难免会出现一些不容易发现的小问题,习惯真的很重要的