- 締切済み
配列の渡し方と表示の仕方
初心者です。 以下のメイン関数で実行をしたところ、 定義した文字列の最後の文字しか表示されません。 関数に上手く引数として配列が渡されていないか、 表示のさせ方が悪いと思うのですが、よく分かりません。 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; } よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
回答No.1
根本的な間違いがすぎます。(見た瞬間に9箇所の間違いを見つけました。よく見るともっとあります。) 入門書等で、文字列と配列について、もう一度基礎から勉強しなおすことを強くお勧めします。 最後に一つだけヒントを... 「多文字リテラル」について調べてみてください。文字列にすべきところを、間違って多文字リテラルにしています。 (間違いはその部分だけではありません。)