• 締切済み

配列の渡し方と表示の仕方

初心者です。 以下のメイン関数で実行をしたところ、 定義した文字列の最後の文字しか表示されません。 関数に上手く引数として配列が渡されていないか、 表示のさせ方が悪いと思うのですが、よく分かりません。 int main(void) { char str[CASENUM][10] = {'abcdef','abcde','abcd','abc'}; int startIndex[CASENUM] = {2,1,3,1}; char expected[CASENUM][10] = {'abcdef','abcde','abcd','abc'}; int i,m; char res; for(i = 0; i < CASENUM; i++) { printf("%c",str[m][i]); res = *subString(str[i],startIndex[i]); printf("実行結果:%c , 期待結果:%c\n", res, expected[i][10]); } return 0; } よろしくお願いします。

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

根本的な間違いがすぎます。(見た瞬間に9箇所の間違いを見つけました。よく見るともっとあります。) 入門書等で、文字列と配列について、もう一度基礎から勉強しなおすことを強くお勧めします。 最後に一つだけヒントを... 「多文字リテラル」について調べてみてください。文字列にすべきところを、間違って多文字リテラルにしています。 (間違いはその部分だけではありません。)