2차원 배열에서 문자열을 보관하기 (3차원 배열로 볼수 있슴)
먼저 2차원 배열을 동적으로 할당하여 문자열의 포인터를 저장할 수 있게 준비한다.
만들어진 문자열을 strdup함수를 사용하여 2차원 배열에 넣어 준다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char*** makeArray(int rows, int cols) { //이렇게 3차원 문자열을 동적할당 했습니다.
char ***ar;
int i, j;
ar = (char ***)malloc(rows * sizeof(char **));
for(i=0;i<rows;i++) {
ar[i]=(char**)malloc(cols * sizeof(char *));
}
return ar;
}
int main(void)
{
FILE *file9 = fopen("123.txt", "r");
char readLine[100] = {0,};
char *readToken = NULL;
char c;
char ***line9;
int i, j, rows = 26, cols = 26;
line9 = makeArray(rows, cols);
for(i = 0; i < rows; i++) //배열로 읽어들이는 부분
{
j = 0;
fscanf(file9, "%s", readLine);
readToken = strtok(readLine, ",");
while(readToken != NULL)
{
line9[i][j++]=strdup(readToken);
readToken = strtok(NULL, ",");
}
for(j = 0; j < cols; j++) //한줄씩 완성될때마다 출력
printf("%5s ", line9[i][j]);
printf("\n");
}
for(i = 0; i < rows; i++) //for문 빠져나와서 전체 출력
{
for(j = 0; j < cols; j++)
printf("%5s ", line9[i][j]);
printf("\n");
}
fclose(file9);
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
약수, 공약수, 최대공약수, 최소공배수 (0) | 2012.06.14 |
---|---|
중복된 단어 지우기 (0) | 2012.06.14 |
한줄의 단어를 역순으로 출력하기 (0) | 2012.06.13 |
수치해석-뉴톤메쏘드 (0) | 2012.06.13 |
.smi 파일에서 영어만 추출하기. (0) | 2012.06.11 |