基本情報技術者試験の過去問を解いています。
以下をvisual stdio communityで動作確認したところエラーメッセージがでます。
その理由が分かりません。
エラー内容;
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E0144 型 "const char [14]" の値を使用して型 "char [13]" のエンティティを初期化することはできません Project3 C:\Users\takas\source\repos\Project3\Project3\pro3.cpp 78
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2117 'chg': 指定された配列には、初期化子が多すぎます。 Project3 C:\Users\takas\source\repos\Project3\Project3\pro3.cpp 81
===CODE====
#include<stdio.h>
#include<string.h>
#define RSIZ 5
#define CSIZ 13
void enc_str(char[], char[RSIZ][CSIZ]);
void enc_str(char str[], char xchg_t[RSIZ][CSIZ]) {
int cp[2], rp[2], pos[2],
flg, i = 0, col, row, p = 0;
/* 動作確認用に追加 */ unsigned int alpha = 0, beta = 0; while (str[p] != '\0') { flg = 0; for (row = 0; row < RSIZ; row++) { for (col = 0; col < CSIZ; col++) { if (str[p] == xchg_t[row][col]) { flg = 1; break; } } if (flg != 0) break; } if (flg != 0) { /* 動作確認用に追加 */ alpha++; printf("α %d回目:col = %d, row = %d\n", alpha, col, row); cp[i] = col; rp[i] = row; pos[i++] = p; if (i == 2) { if (str[pos[0]] == str[pos[1]]) { str[pos[0]] = str[pos[1]] = xchg_t[(rp[0] + 1) % RSIZ] [(cp[0] + 1) % CSIZ]; } else { if (rp[0] == rp[1]) { str[pos[0]] = xchg_t[rp[1]][cp[1]]; str[pos[1]] = xchg_t[rp[0]][cp[0]]; } else if (cp[0] == cp[1]) { str[pos[0]] = xchg_t[rp[0]] [(cp[0] + 1) % CSIZ]; str[pos[1]] = xchg_t[rp[1]] [(cp[1] + 1) % CSIZ]; } else { str[pos[0]] = xchg_t[rp[1]][cp[0]]; str[pos[1]] = xchg_t[rp[0]][cp[1]]; } } i = 0; /* 動作確認用に追加 */ beta++; printf("β %d回目:str=%s\n cp[0] = %d, cp[1] = %d, rp[0] = %d, rp[1] = %d\n pos[0] = %d, pos[1] = %d\n" , beta, str, cp[0], cp[1], rp[0], rp[1], pos[0], pos[1]); } } p++; } if (i != 0) { str[pos[0]] = xchg_t[RSIZ - 1 - rp[0]][CSIZ - i - cp[0]]; }
}
int main(int argc, char* argv[]) {
int i;
char str[512];
char chg[RSIZ][CSIZ] = {
"abcdefghijklm",
"nopqrstuvwxyz",
"0123456789,. ",
"ZYXWVUTSRQPON",
"MLKJIHGFEDCBA"
};
if (argc != 2) {
printf("文字列を引数として入力してください\n");
return -1;
}
strcpy(str, argv[1]); printf("平文 :%s\n", str); enc_str(str, chg); printf("暗号文:%s\n", str); return 0;
}
前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー