C++ 如何将字符串添加到二维字符元素数组中?
我用C++编写了以下程序:C++ 如何将字符串添加到二维字符元素数组中?,c++,string,visual-c++,char,C++,String,Visual C++,Char,我用C++编写了以下程序: #include <iostream> using namespace std; int main() { int age[5]; char name[5][10]; age[0]=10; age[1]=20; age[2]=30; age[3]=25; age[4]=40; name[0]="abc"; name[1]="abc"; name[2]="abc";
#include <iostream>
using namespace std;
int main()
{
int age[5];
char name[5][10];
age[0]=10;
age[1]=20;
age[2]=30;
age[3]=25;
age[4]=40;
name[0]="abc";
name[1]="abc";
name[2]="abc";
name[3]="abc";
name[4]="abc";
cout<<name[0]<<" is "<<age[0]<<"years old";
cout<<"\n";
cout<<name[1]<<" is "<<age[1]<<"years old";
cout<<"\n";
cout<<name[2]<<" is "<<age[2]<<"years old";
cout<<"\n";
cout<<name[3]<<" is "<<age[3]<<"years old";
cout<<"\n";
cout<<name[4]<<" is "<<age[4]<<"years old";
cout<<"\n\n";
system("PAUSE");
}
#包括
使用名称空间std;
int main()
{
国际年龄[5];
字符名[5][10];
年龄[0]=10岁;
年龄[1]=20岁;
年龄[2]=30岁;
年龄[3]=25岁;
年龄[4]=40岁;
名称[0]=“abc”;
名称[1]=“abc”;
名称[2]=“abc”;
名称[3]=“abc”;
名称[4]=“abc”;
cout您将名称
数组视为这样定义的:
char *name[5];
因此,要么以这种方式定义它,要么使用以下代码填充它:
strcpy(name[0], "abc");
strcpy(name[1], "abc");
strcpy(name[2], "abc");
strcpy(name[3], "abc");
strcpy(name[4], "abc");
我更喜欢前一种选择。重点是您正在尝试将char*
分配给char[]
这就是strcpy的作用。在本例中,如果您正在操作初始化的C字符串,那么您最好在整个代码中处理char*
。给定程序段,name
可以在声明本身处初始化
char name[5][10] = { "abc", "abc", "abc", "abc", "abc" } ;
// ^ index 5 is not necessary. char name[][10] = { .. } would also suffice.
指定每行的长度为10,但仅使用它的前3索引。每3索引(即数组中的第4个元素)自动添加一个'\0'
在age
数组的情况下也可以进行初始化。您也可以使用std::string name[10]
而不是2d char的数组。在这种情况下,只有您可以通过运算符“=”为字符串分配新值。
否则,您应该使用<代码> char */COD>数组,使用<代码> STRCYP()/<代码>赋值函数。< /P> < P>您应该使用<代码> STD::String < /Cube >。使用<代码> char *<代码>和 char []/COD>来表示字符串是出于C++的原因。