I'm writing a function that replaces blank spaces into '-' (<- this character). I ultimately want to return how many changes I made.
#include <stdio.h>
int replace(char c[])
{
    int i, cnt;
    cnt = 0;
    for (i = 0; c[i] != EOF; i++)
        if (c[i]==' ' || c[i] == '\t' || c[i] == '\n')
        {
            c[i] = '-';
            ++cnt;
        }
    return cnt;
}
main()
{
    char cat[] = "The cat sat";
    int n = replace(cat);
    printf("%d\n", n);
}
The problem is, it correctly changes the string into "The-cat-sat" but for n, it returns the value 3, when it's supposed to return 2. What have I done wrong?
 
     
     
     
     
     
    