我对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/