使用函数的元音词

时间:2014-09-01 17:25:42

标签: c arrays string function loops

我有以下任务:

  1. 创建一个新文本文件并将其命名为TEXT1.txt。将以下内容写入此文本文件:

      

    始终参加您的讲座和辅导课程

    使用C编程语言

    • 创建名为vowelwords()的函数。此函数读取TEXT1.txt文件的内容,并在屏幕上打印出不以大写或小写元音开头的单词(即'a','e','i','o', 'U')。 例如,如果TEXT1.txt文件包含:

        Ooi Chee Pun!始终参加您的讲座和辅导课程

      然后

        切普!你的讲座辅导课

      将在屏幕上打印 注意:您应确定要使用的相应数组和变量。

    • 编写main()函数,该函数调用创建的vowelwords()函数。

  2. 修改第1部分中的vowelwords()函数,将不以大写或小写元音开头的单词写入名为TEXT2.txt的新文本文件。
  3. 我已经完成了以下部分,我的结果如下:

      

    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;
    }
    

    如何修改代码以使其按照任务中的描述工作?

1 个答案:

答案 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;
}