我有以下任务:
创建一个新文本文件并将其命名为TEXT1.txt
。将以下内容写入此文本文件:
始终参加您的讲座和辅导课程
使用C编程语言
创建名为vowelwords()
的函数。此函数读取TEXT1.txt
文件的内容,并在屏幕上打印出不以大写或小写元音开头的单词(即'a','e','i','o', 'U')。
例如,如果TEXT1.txt
文件包含:
Ooi Chee Pun!始终参加您的讲座和辅导课程
然后
切普!你的讲座辅导课
将在屏幕上打印 注意:您应确定要使用的相应数组和变量。
main()
函数,该函数调用创建的vowelwords()
函数。
vowelwords()
函数,将不以大写或小写元音开头的单词写入名为TEXT2.txt
的新文本文件。我已经完成了以下部分,我的结果如下:
lwys ttnd yr lctr nd ttrl clsss
但它应该是:
你的讲座辅导班
这是我的代码:
#include <stdio.h>
int main()
{
FILE *fPtr;
int c;
char vowel[50];
fPtr = fopen("TEXT1.txt","r");
c = getc(fPtr);
while(c!= EOF) {
if((c == 'A')||(c == 'a')||(c == 'E')||(c == 'e')||(c == 'I')||(c == 'i')
||(c == 'O')||(c == 'o')||(c == 'U')||(c =='u')){
c = 0;
}
else
putchar(c);
c=getc(fPtr);
}
fclose (fPtr);
return 0;
}
如何修改代码以使其按照任务中的描述工作?
答案 0 :(得分:0)
最后我找到了解决这个问题的方法。非常感谢您的反馈。
#include <stdio.h>
#include <stdlib.h>
void vowelwords(){
FILE *file;
char line[48];
file = fopen("TEXT1.txt", "r");
if (!file)
return 1;
fgets(line, 48, file);
fclose(file);
char *pch;
pch = strtok(line, " ,.-");
while (pch != NULL)
{
if (pch[0] == 'a' || pch[0] == 'A' || pch[0] == 'e' || pch[0] == 'E' || pch[0] == 'i'
|| pch[0] == 'I' || pch[0] == 'o' || pch[0] == 'O' || pch[0] == 'u' || pch[0] == 'U')
{
}
else
printf ("%s ", pch);
pch = strtok (NULL, " ,.-");
}
}
int main()
{
vowelwords();
return 0;
}
对于问题2,答案是
#include <stdio.h>
#include <stdlib.h>
void vowelwords();
int main ()
{
FILE *file , *fp;
char line[100];
file = fopen("TEXT1.txt", "r");
if (!file)
return 1;
fgets(line,100, file);
fclose(file);
fp = fopen("TEXT2.txt","w");
if(fp == NULL){
printf("Error in opening the file");
return 1;
}
char * pch;
pch = strtok (line," ,.-");
while (pch != NULL)
{
if (pch[0] == 'a' || pch[0] == 'A' || pch[0] == 'e' || pch[0] == 'E' || pch[0] == 'i' ||
pch[0] == 'I' || pch[0] =='o' || pch[0]=='O' || pch[0] == 'u' || pch[0] == 'U'){
}
else
fprintf (fp,"%s ",pch);
pch = strtok (NULL, " ,.-");
}
printf("\n\n\n\n");
return 0;
}