私は交換プログラムを作成していますが、別の6文字配列を保持するchar配列を持っています。 1つのことを除いてプログラムは正常に動作します:配列の値を出力しようとすると、最初の文字だけが出力されます。char配列の配列C++
コードが正しくないかもしれませんが、私はこの交換を行う別の方法を見つけることができませんでした。実際には、問題はその配列を指すポインタにあると思いますが、やはりわかりません。あなたは文字の配列の配列を作成していない
char t[6];
:この行では
#include <iostream>
#include <string>
#include <fstream>
#include <stdlib.h>
using namespace std;
int main(int argc, char* argv[])
{
cout<<"EXCHANGE POKEMON:"<<endl;
char a[100]="PIKACHU", b[100]="CHARMELEON", c[100]="GEODUDE", d[100]="GYARADOS", e[100]="BUTTERFREE", f[100]="MANKEY", tmp[100];
char t[6] = {*a,*b,*c,*d,*e,*f};
while(1)
{
for(int i = 0; i < 6; i++)
{
cout << i << ") " << t[i] <<endl;
}
cout<<endl<<"Choose a pokemon:";
int x, y;
cin>>x;
if(x == -1)
{
exit(0);
}
cout << "Choose a pokemon to exchange with:";
cin>>y;
*tmp = t[x];
t[x] = t[y];
t[y] = *tmp;
}
}
してください[編集]書式設定を修正するための質問:
は何あなたが探していると、代わりにchar型のポインタの配列です。今後の投稿については、投稿する前にプレビューを確認してください。 –
C++の場合は、文字列を表現するために['std :: string'](http://en.cppreference.com/w/cpp/string)を使用してください(と' 'std :: swap'') (http://en.cppreference.com/w/cpp/algorithm/swap)それらを交換する)? –
その他:*「別の6文字の配列を保持するchar配列があります」*そうではありません。あなたはあなたの学習教材をより慎重に読む必要があります。文字列操作のためにC配列を使用するよう実際に指示されている場合は、より良い本を入手する必要があります。 –