횽님들 c언어 프로그램 짠거에서 좀더 완성도좀 높여줘

부탁할께


#include<stdio.h>
 void main()
 {
     char str[51]; 
     int word[50]={0,};
     int i,j=0;
     printf(\"50자 이내로 영어문장을 입력하시오 :\\n\"); 
     gets(str);
    
    
     for(i=0;i<51;i++)
     {
         if(str[i]==\'\\0\')
             break;
         if(str[i]==\' \')
         {
             if(word[j]!=0)j++;
         }
         else if(str[i]!=\'.\' && str[i]!=\',\' && str[i]!=\'?\' && str[i]!=\'!\')
             word[j]++; 
     }
     printf(\"입력한 문장에서 단어의 개수는 %d개 이며 단어의 글자수는\",j+1);
     for(i=0;i<=j;i++) 
     {
         printf(\"%d,\",word[i]); 
     }
     printf(\"이다.\\n\");
 }


여기서 프로그램을 돌렸을때

특수문자 문장안에 ! , . ? 를 입력했을때 그러니까 예를 들여서


i am a boy? . 이렇게 입력했을때


\"단어의 개수는 5개 이며 단어의 글자수는 1,2,1,3,0,이다.\"


이렇게 나오는데 결과에서 단어의 개수를 출력할때 특수문자를 포함하지 않고

\"단어의 개수는 4개 이며 단어의 글자수는 1,2,1,3 이다.\"


이렇게만 출력되게 하려면 어떤걸 고쳐야 되는거야?
(입력문장은 위에와 동일하게 뒤에? . 등 특수문자를 입력할때 말야)