Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将字符串添加到二维字符元素数组中?_C++_String_Visual C++_Char - Fatal编程技术网

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";

我用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";
    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++的原因。