その入力しておいた文字をstrtokで配列に入れる動作を作りたいと思っています。
私的にはうまくやっていると思うのですが、あまりうまく文字を格納
出来なくて困っています。最初のH,W,Nは思い通りの文字を格納することが出来たのですが
それ以降のfor文で二次元配列に文字を格納するところ、数字を格納するところが下記の
とおり入力に対し出力がうまく実行できませんでした。
どのようにすればうまく格納することができるでしょうか。
すみませんがご教授お願いします。
入力例) 出力)
3 6 7
C A B J Q B A E S B B Q
S E . . J C A E S B B Q
A E S B B Q A E S B B Q
2 2 3 2 2 2 2 2
1 3 1 6 1 1 1 1
1 4 2 5 1 1 1 1
1 2 3 1 1 1 1 1
1 6 3 5 1 1 1 1
1 3 3 4 1 1 1 1
3 1 3 6 3 3 3 3
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#define Hikaku 4
#define max 100
int main(int argc,char *argv[])
{
int H,W,N;
char str[100];
int i,j;
int a[max][max];
char *z[max][max];
fgets(str,sizeof(str),stdin);
H = atoi(strtok(str," "));
W = atoi(strtok(NULL," "));
N = atoi(strtok(NULL," "));
for(i = 0;i<H;i++)
{
fgets(str,sizeof(str),stdin);
for(j = 0;j<W;j++)
{
if(j == 0)
{
z[i][j] = strtok(str," ");
j++;
}
z[i][j] = strtok(NULL," ");
}
}
for(i = 0;i < H;i++)
{
for(j = 0;j<W;j++)
{
printf("%s ",z[i][j]);
}
}
for(i = 0;i<N;i++)
{
fgets(str,sizeof(str),stdin);
for(j = 0;j<Hikaku;j++)
{
if(j == 0)
{
a[i][j] = atoi(strtok(str," "));
j++;
}
a[i][j] = atoi(strtok(str," "));
}
}
for(i = 0;i<N;i++)
{
for(j = 0;j<Hikaku;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}