繁体   English   中英

c中的输出元音

[英]Output vowels in c

你能帮助我吗? 我需要从文件中读取的字符串输出元音。 为什么我的情况不适合这个?

if(mainArr[i]==vows[j])
 {
  res[l]=vows[j];
  l++;
 }

我成功读取了我的字符串,但是猜测需要使用#include <string.h>的特殊功能进行比较。 您能帮忙找到另一个比较字母的变体吗?

我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *fileIn;
    int i,j,l,k,z;
    char mainArr[40];
    char vows[]={'a','e','i','o','y','u','A','E','I','O','Y','U'};
    char res[30];
    if ((fileIn = fopen ("1.txt","r"))!=NULL)
    {

        fgets(mainArr,40-1,fileIn);
        puts(mainArr);



        for (i=0;i<strlen(mainArr);i++)
        {
            for(j=0;j<strlen(vows);j++)
                {
                  if(mainArr[i]==vows[j])
                    {
                    res[l]=vows[j];
                    l++;
                    }
                }
        }

        for (k=0;k<l;k++)
        {
            printf("%c",res[k]);
        }
    }
    return 0;
}

我的错误是:

  1. 我不能将strlen()用于誓言,因为vows不是字符串。
  2. 没有初始化l

     int main() { FILE *fileIn; FILE *fileOut; int i,j,l=0,k,z; char mainArr[40]; char vows[]={'a','e','i','o','y','u','A','E','I','O','Y','U'}; char res[30]; if ((fileIn = fopen ("1.txt","r"))!=NULL) { fgets(mainArr,40-1,fileIn); puts(mainArr); for (i=0;i<strlen(mainArr);i++) { for(j=0;j<11;j++) { if(mainArr[i]==vows[j]) { res[l]=vows[j]; l++; } } } for (k=0;k<l;k++) { fprintf(fileOut,"%c",res[k]); } } else { printf("Error: can't open file (1)\\n"); exit(1); } return 0; } 

    感谢您的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM