コピペします。
>>strtok を使えと言いたいところだけれど、
>>strtok は、,, とカンマが続くと馬鹿になるんです。
>>仕方がないので、その辺を for で作って誤魔化しました。
>>もっとも、スペースを読み飛ばしたり、" でくくったりには、対応していません。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(int argc,char **argv){
char *fname;
FILE *fp;
int k,l,i,j;
char word[4096],*tp,*moji[4][4];
if(argc<=1) return -1;
fname = argv[1];
fp = fopen( fname, "r" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}
l=0;
while(fgets(word,sizeof(word),fp) != 0){
printf("%s",word);
for(k=0,tp=word;*tp!='\n'&&*tp;tp++){
for(j=0;*(tp+j);j++){
if(*(tp+j)=='\n'||*(tp+j)==','){
moji[l][k] = (char*)malloc(j+1);
if(j){
strncpy(moji[l][k],tp,j);
tp += j;
}else moji[l][k][0] = 0;
k++;
break;
}
}
}
l++;
}
for(i=0;i<l;i++){
for(j=0;j<k;j++){
printf("結果%2s ",moji[i][j]);
}
printf("\n");
}
return 0;
}
このコードをコピペして、実行してみると
結果a\204͋\377 結果ai 結果ae 結果ao 結果ap
i 結果ia 結果io 結果ik 結果iz
u 結果ua 結果ue 結果uo 結果uq
e 結果ei 結果eu 結果em 結果en
o 結果
となってしまいます。雰囲気はあってるのですが、まず、aのあとのエラーの直し方。/204/377 とは何ぞや?とか
i u e o が結果に反映されていない。 多分、改行部分がうまくいってないんだろうなっていうのはわかるんですが、どうしよってなっていまいます。あと、最大の問題点は、説明不足だったのですが、{" ai","ae"・・ のような表示の仕方をしたいのです。ようするに""で囲んで欲しいのです。