使用c语言文件内容为字符串类型的content的相反顺序从文件中读取内容放入fileStr数组中并返回
时间: 2023-05-23 18:05:31 浏览: 100
A:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* reverseFileContent(char* content) {
int contentSize = strlen(content);
char* reversedContent = (char*) malloc(sizeof(char) * (contentSize + 1));
int i, j;
for(i = contentSize - 1, j = 0; i >= 0; i--, j++) {
reversedContent[j] = content[i];
}
reversedContent[contentSize] = '\0';
return reversedContent;
}
char* reverseFileContentFromFile(const char* fileName) {
FILE* file = fopen(fileName, "r");
if(file == NULL) {
return NULL;
}
fseek(file, 0, SEEK_END);
long fileSize = ftell(file);
fseek(file, 0, SEEK_SET);
char* content = (char*) malloc(sizeof(char) * (fileSize + 1));
if (fread(content, 1, fileSize, file) != fileSize) {
fclose(file);
free(content);
return NULL;
}
fclose(file);
content[fileSize] = '\0';
char* reversedContent = reverseFileContent(content);
free(content);
return reversedContent;
}
int main() {
const char* fileName = "test.txt";
char* reversedContent = reverseFileContentFromFile(fileName);
if(reversedContent != NULL) {
printf("Reversed Content: %s\n", reversedContent);
free(reversedContent);
} else {
printf("Failed to read file: %s\n", fileName);
}
return 0;
}
```
解释:先定义一个函数 `reverseFileContent`,它会将一个字符串内容反转,这个函数会被主函数中的 `reverseFileContentFromFile` 函数调用。`reverseFileContentFromFile` 用于读取文件内容到内存中并反转它,最后返回反转后的内容。在函数中,首先用文件名打开文件,计算它的大小,然后通过 fread 函数读取文件内容到内存里,并调用 `reverseFileContent` 反转文件内容,当执行完毕后释放掉内存返回结果即可。
阅读全文