C++ 字符数组的数组C++;
我正在编写一个交换程序,我有一个字符数组,其中包含另外6个字符数组。该程序运行良好,除了一件事:当我试图打印数组的值时,它只打印第一个字母 也许代码不对,但我没有找到另一种方法来进行交换。事实上,我认为问题在于指向那个数组的指针,但我还是不确定 代码如下:C++ 字符数组的数组C++;,c++,arrays,C++,Arrays,我正在编写一个交换程序,我有一个字符数组,其中包含另外6个字符数组。该程序运行良好,除了一件事:当我试图打印数组的值时,它只打印第一个字母 也许代码不对,但我没有找到另一种方法来进行交换。事实上,我认为问题在于指向那个数组的指针,但我还是不确定 代码如下: #include <iostream> #include <string> #include <fstream> #include <stdlib.h> using namespace std;
#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;
}
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
用这条线可以:
char t[6];
您并不是在创建一个字符数组,而是在创建一个简单的字符数组。因此,毫不奇怪,每个元素都是一个字符
您可能想要:
char *t[6] = {a, b, c, d, e, f};
请注意,*a
实际上相当于a[0]
然后tmp
数组被错误地使用:在C中,您使用strcpy()
复制字符串,而不是使用赋值运算符。或者,您持有指向原始字符串的指针
但是你使用C++,为什么不使用<代码> STD::String ?也许你只是学习数组,想硬的做它?< /P> < p>你定义了代码> t>代码>作为一个数组,初始化了以前定义的数组的地址。这相当于获得了第一个元素。
*a is equivalent to a[0]
您要查找的是一个字符指针数组:
char *t[6] = {a,b,c,d,e,f};
请先修改格式。对于未来的帖子,请在发布前检查预览。如果是C++,为什么不直接用字符串来表示(并交换它们)?另外:“我有一个字符数组,它包含另一个6个字符数组”。不需要。你需要更仔细地阅读你的学习材料;如果它实际上告诉你使用C数组来进行字符串操作,你应该得到一本更好的书。是的,你是对的,我选了一门C++课程,这就是我为什么要这样做的原因。顺便说一下,谢谢你的帮助。