C 从指针数组中分离字符串

C 从指针数组中分离字符串,c,arrays,pointers,C,Arrays,Pointers,我有两个指针数组,就是 char *a[3]= {"man","dog","cat"}; char *b[3]= {"job","rain","sleep"}; 我想将上述两个字符串分成三个不同的字符数组,然后将*b[]中的字符串连接到*a[]中的字符串末尾 我怎样才能做到这一点?我不想打印分隔的字符串。如果我理解正确,您需要以下内容 char s[3][10]; for ( size_t i = 0; i < 3; i++ ) { strcpy( s[i], a[i] );

我有两个指针数组,就是

char *a[3]= {"man","dog","cat"};
char *b[3]= {"job","rain","sleep"};
我想将上述两个字符串分成三个不同的字符数组,然后将
*b[]
中的字符串连接到
*a[]
中的字符串末尾


我怎样才能做到这一点?我不想打印分隔的字符串。

如果我理解正确,您需要以下内容

char s[3][10];

for ( size_t i = 0; i < 3; i++ )
{
   strcpy( s[i], a[i] );
   strcat( s[i], " " );
   strcat( s[i], b[i] );
}
chars[3][10];
对于(大小i=0;i<3;i++)
{
strcpy(s[i],a[i]);
strcat(s[i],“”);
strcat(s[i],b[i]);
}

这个问题与程序员无关。最好在堆栈溢出问题上提问,但是,这个问题不符合他们的最低要求。请阅读堆栈溢出问题清单和您的问题,使其适合迁移。需要提供一个新数组,因为无法扩展数组。“…我想分离上面两个的三个字符串…”共有六个字符串。首先,使用
char*
指向字符串文字是非法的。您需要
const char*
@Siyuan Ren:使用
char*
指向字符串文本并不违法。阅读C标准:对于字符串文字,数组元素的类型为
char
。如果程序试图修改这样的数组,则行为是未定义的。