我目前正試圖實現一個程序,該程序獲取文件,讀取文件並將其內容複製到數組(farray)。在此之後,我們將farray的內容作爲由空終止符分隔的字符串複製到名爲sarray的字符串數組中。例如,如果farray包含「ua \ 0 \ 0Z3q \ 066 \ 0」,那麼sarray [0]應該包含「ua」,sarray [1]應該包含「\ 0」,sarray [2]應該包含「Z3q」,最後sarray [3]應該包含「66」由空終止符分割C中的字符串
但是我無法弄清楚如何用空終止符分隔字符串。我目前只能使用fread,fopen,fclose,fwrite等系統調用。有人可以幫幫我嗎?
SRC代碼:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char *argv[]){
char *farray;
const char *sarray;
long length;
int i;
//Open the input file
FILE *input = fopen(argv[1], "rb");
if(!input){
perror("INPUT FILE ERROR");
exit(EXIT_FAILURE);
}
//Find the length
fseek(input, 0, SEEK_END);
length = ftell(input);
fseek(input, 0, SEEK_SET);
//Allocate memory for farray and sarray
farray = malloc(length + 1);
//Read the file contents to farray then close the file
fread(farray, 1, length, input);
fclose(input);
//Do string splitting here
//Free the memory
free(farray);
return 0;
}
我們正在嘗試做的是分割farray並將單個字符串作爲獨立元素複製到sarray中。我們不會用空字符替換farray中的任何字符。 –