title: Error: char converts between pointers to integer types with different sign
body: <p><strong>Question:</strong> Write a program anagram that sorts the letters in a word, which is useful when searching for anagrams. anagram takes a single argument, which is a string containing only lower-case letters, sorts the letters alphabetically, and then prints the sorted letters. You may use any sorting algorithm you are familiar with, but you must write the sort function yourself. You may not use any sort function provided by a library.</p>
  
  <p>Usage </p>
  
  <pre><code>$ ./anagram hello
  ehllo
  $ ./anagram positivity
  iiiopsttvy
  $ ./anagram abcdef
  abcdef
  </code></pre>
  
  <p>The below code is what I have done so far but I get the error </p>
  
  <blockquote>
    <p>passing char * to parameter of unsigned char converts between pointers to integer types with different sign</p>
  </blockquote>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  
  void anagram(unsigned char input[])
  {
     int count[256] = { 0 };
     int i;
     for (i = 0; input[i] != '\0'; i++)
     {
        count[input[i]]++;
     }
     for (i = 0; i &lt; 256; i++)
     {
        while (count[i] &gt; 0)
        {
           printf("%c", i);
           count[i]--;
        }
     }
  }
  
  int main(int argc, char* argv[])
  {
     if(argc &gt; 1)
     {
        anagram(argv[1]);
     }
     return 0;
  
  }
  </code></pre>