代码声明:
$char Primeiro[5][20] = {"Pedro", "Tiago", "Ana", "Bruno", "Camila"};
$char Meio[5][20] = {"Oliveira", "Antunes", "Ferreira", "Santos", "Cunha"};
$char Sobrenome[5][20] = {"Cardoso", "Silva", "Azevedo", "Monteiro", "Soares"};
$char *vNomeCompleto[125][60];
$ vNomeCompleto[i][i] = strcat(Primeiro[iPrimeiro], strcat(Meio[iSegundo], Sobrenome[iTerceiro]));
我无法使向量vNomeCompleto
接收其他三个向量。有人可以帮助我吗?
- vNomeCompleto 声明为 char* 指针数组 - 没有分配字符串的内存,只分配指针。
- strcat(Meio[iSegundo], Sobrenome[iTerceiro]) - 您试图向具有 20 个最大 len 的 Meio[i] 添加 20 多个字符 - 在某些情况下预计会出现"越界"错误。第一个strcat也是如此。
这是一个工作示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char Primeiro[5][20] = { "Pedro", "Tiago", "Ana", "Bruno", "Camila" };
char Meio[5][20] = { "Oliveira", "Antunes", "Ferreira", "Santos", "Cunha" };
char Sobrenome[5][20] = { "Cardoso", "Silva", "Azevedo", "Monteiro", "Soares" };
char vNomeCompleto[5][400];
for (i = 0; i < 5; ++i)
{
strcpy(vNomeCompleto[i], Primeiro[i]);
strcat(vNomeCompleto[i], Meio[i]);
strcat(vNomeCompleto[i], Sobrenome[i]);
}
return 0;
}
vNomeCompleto
包含:
PedroOliveiraCardoso
TiagoAntunesSilva
AnaFerreiraAzevedo
BrunoSantosMonteiro
CamilaCunhaSoares