I am trying to find a substring in a string. While doing this, I understood that to check for multiple conditions in a for loop if we write
for(i=0; condition1, condition2; i++)
the value of condition1 is found and then discarded. Then, the value of condition2 is found and returned. To get around this, we need to use && in case of multiple conditions to be checked by a for loop in here.
for(i=0; condition1 && condition2; i++)
So far I believe I understood right, but the following for loop is not working.
for(i=0; (a[i] != '\0') && (a[i] == b[0]); i++)
{
    j = i + 1;
    k = 1;
    while(a[j] == b[k] && a[j] != '\0' && b[k] != '\0')
    {
        j++;
        k++;
    }
    if(b[k] == '\0')
    {
        return i;
    }
}
return -1;
When I wrote the above for loop, the control is entering the loop and performing the operations, whereas in the following code, control is not even entering the for loop, and it is working correctly.
for(i=0; a[i] != '\0'; i++)
{
  if(a[i] == b[0])
  {
      j = i + 1;
      k = 1;
      while(a[j] == b[k] && a[j] != '\0' && b[k] != '\0')
      {
          j++;
          k++;
      }
      if(b[k] == '\0')
      {
          return i;
      }
  }
}
Is there something I am missing about internal processing in for loops? I believe the way they both should work is the same.
 
     
     
    