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

最佳答案

这里有一些逻辑可以帮助您:
编写一个接受字符串并按您所描述的方式转换它的函数。先做这个。测试好它,因为它是程序的基本部分。
现在,您需要从main读取一个文本文件,并在屏幕上以自己的行显示每个单词。这是为了帮助您理解如何从文件中读取单词。我会用fscanf来做这个。确保您可以读取整个文本文件,并且不会崩溃
现在,在打印在表单步骤2中读取的单词之前,从步骤1调用函数。这将改变这个词,当你打印时,你应该得到正确的结果。

关于c - 从C中的文本文件获取每个字符串的第一个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26245266/

10-14 13:19
查看更多