[英]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;
}
我的错误是:
strlen()
用于誓言,因为vows
不是字符串。 没有初始化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.