アイデアは、EOF に達するまで (この形式で"string - string"
) 標準入力から文字列を読み取ることです。次に、文字列を 2 つの文字列に分割し、2 次元配列に保存します。配列は、最初は 2 行 20 列で動的に割り当てられますが、次の文字列を追加するたびに 2 行追加したいと思います (関数expandmat()
)。これが私のコードです:
char ** alloc(int rows, int collums) {
char ** mat;
int i;
mat = malloc(sizeof (char *) * rows);
for (i = 0; i < rows; i++) {
mat[i] = malloc(sizeof (char) * collums);
}
return mat;
}
char ** addtoarray(char ** mat, char * string1, char * string2, int position) {
sscanf(string1, "%s", mat[positon]);
sscanf(string2, "%s", mat[positon+1]);
return mat;
}
char ** getinput(char * longstring, char * string1, char * string2) {
int position = 0, n = 2, max = 30;
char ** mat;
mat = alloc(n, max);
while (fgets(longstring, max, stdin)) {
sscanf(longstring, "%s - %s", string1, string2);
addtoarray(mat, string1, string2, positon);
n += 2;
position += 2;
mat = expandmat(mat, n);
}
return mat;
}
また、このコードに意味をなさない箇所があれば、それを修正する方法を教えていただけますか?
これは些細な作業のように思えますが、私は頭がおかしくなりました。
ご協力いただきありがとうございます。