我在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;
}
答案 0 :(得分:1)
这里有一些帮助你的逻辑:
编写一个接受字符串的函数,并按照您的描述进行转换。首先这样做。并且测试得很好,因为它是该计划的基本部分。
现在您想要从main读取文本文件,只需在屏幕上显示每个单词的行。这是为了帮助您了解如何从文件中读取单词。我会用fscanf
来做这件事。确保您可以阅读整个文本文件并且它不会崩溃