title: What does `(c = *str) != 0` mean?
body: <pre><code>int equiv (char, char);
  int nmatches(char *str, char comp) {
      char c;
      int n=0;
      while ((c = *str) != 0) {  
         if (equiv(c,comp) != 0) n++;
        str++;
      }
      return (n);    
  }
  </code></pre>
  
  <p>What does "(c = *str) != 0" actually mean?
  Can someone please explain it to me or help give me the correct terms to search for an explanation myself?</p>