【问题标题】:How do I delete specific words in arrays?如何删除数组中的特定单词?
【发布时间】:2018-10-01 13:20:29
【问题描述】:

我想从 .txt 文件中删除所有超过 5 个字母的单词。 在我的第一步中,我已经使用 fgets 读取了 char 指针数组中的所有单词。 现在我不知道如何继续。 如果有人可以帮助我,我将不胜感激。到目前为止我得到了什么:

    int main () {
        FILE *fp;
        char str[2500];

        fp= fopen("a.txt" , "r");
        if (fp==NULL) { 
            perror("Error opening file");
            return(-1); 
        }

        fgets (str, 2500, fp)!=NULL

        fclose(fp);
        return(0);
   }

【问题讨论】:

  • 您的代码在哪里?你试过什么?错误是什么?
  • 我投票结束这个问题,因为它不是免费的家庭作业服务
  • 这只是我功课的一小部分。如果我发布仅包含 fgets 的代码会有帮助吗?我已经搜索过这个主题,但没有找到与我的问题相关的信息。
  • 您必须包含minimal reproducible example。这种事情令人担忧:“我已经用 fgets 读取了一个 char 指针数组中的所有单词。”该数组中的每个指针都必须指向某个分配的内存;您并没有真正将单词读入指针数组。
  • strlen可能想在某处写if (strlen(arr[i]) < 6)

标签: c arrays pointers char fgets


【解决方案1】:

想想如何做到这一点。您需要删除所有大于五 (5) 个字母的单词。考虑这一点的另一种方法是您要复制所有不超过五 (5) 个字母的单词。

说一句话。测量它。如果您需要保留它,请将其写出(写入新文件)。

重复。

最后,您有两个文件:输入(包含所有单词)和输出(所有五 (5) 个或更少的字母)。

现在你要做什么?

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多