C语言问题 计算文本文件中的元音

这个要怎么做?编写一个 C 程序,要求是:它被赋予一个文件名作为命令行参数。它应该打印文件中有多少元音的计数。你可以假设元音是小写字母aeiou和大写字母AEIOU。

img

#include <stdio.h>
int main(int args,char *argv[])
{
      if(args<1)
          return 0;
      int count = 0;
      FILE *fp = fopen(argv[1],"r");
      if(fp != NULL)
      {
            char buf[1000];
            while(fgets(buf,100,fp) != NULL)
            {
                 int i=0;
                 while(buf[i] != 0)
                {
                      switch(buf[i])
                      {
                              case 'a':
                              case 'i':
                              case 'e':
                              case 'o':
                              case 'u':
                             case 'A':
                              case 'E':
                              case 'I':
                              case 'O':
                              case 'U':
                                  count++;    
                      }
                      i++;
                }
            }
            fclose(fp);
      }
      printf("%d",count);
      return 0;

}