从C中的文本文件中获取每个字符串的第一个字符

时间:2014-10-07 21:04:53

标签: c string file

我在C和整个编程方面有点绿,所以我需要任务帮助。

我的目标是使用随机单词(字符串)读取文本文件,如果字符串中有任何数字,请将它们更改为该单词/字符串的第一个字母。例如:“He99llo Im N3w Her3”> “HeHHllo Im NNw HerH”

问题:1。如何从文本文件中读取单独的字符串?            2.如何从单独的字符串中获取第一个字母(而不是数字)?

顺便说一下,我编写了代码,它只接受文本文件的第一个字符并将数字更改为数字,无论数字与否,但我不知道如何在这里添加代码......

编辑:这是编写代码的代码:

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

int Change(FILE *Reading, FILE *Writing){ /*Reads from file and changes numbers into first character of file*/
    int FirstLetter, letter;
    Reading = fopen("C:\\Users\\Rimas\\Desktop\\read.txt", "r");
    Writing = fopen("C:\\Users\\Rimas\\Desktop\\write.txt", "w");

    if (Writing == NULL) {
         printf("I couldn't open write.txt for writing.\n");
         exit(0);
      }

    FirstLetter = getc(Reading);
    if (Reading){
         fprintf(Writing, "%c", FirstLetter);
         while ((letter = getc(Reading)) != EOF){
            if (isdigit(letter)){
                letter = FirstLetter;
            }
            fprintf(Writing, "%c", letter);
         }

    }
    fclose(Reading);
    fclose(Writing);
    return 0;
}

int main() {
    FILE *Reading;
    FILE *Writing;
    Change(Reading, Writing);
    return 0;
}

1 个答案:

答案 0 :(得分:1)

这里有一些帮助你的逻辑:

  1. 编写一个接受字符串的函数,并按照您的描述进行转换。首先这样做。并且测试得很好,因为它是该计划的基本部分。

  2. 现在您想要从main读取文本文件,只需在屏幕上显示每个单词的行。这是为了帮助您了解如何从文件中读取单词。我会用fscanf来做这件事。确保您可以阅读整个文本文件并且它不会崩溃

  3. 现在在打印在表格步骤2中读取的单词之前,请从步骤1调用该功能。这将改变单词,当您打印时,您应该得到正确的结果。