我正在尝试使用结构连接数组strcat.我的代码如下:
int main(){
//Implementation of Search table Tree
struct searchTable
{
char first[10];
int first_id;
char second[10];
int second_id;
char third[10];
int third_id;
char fourth[10];
int fourth_id;
char fifth[10];
int fifth_id;
}input[5]= {
{"ABC", 101},
{"CAB",102},
{"ACB",103},
{"AAC",104},
{"CCB",105}
};
char join[100]={0};
strcat(join, input[0].first);
strcat(join, input[1].second);
strcat(join, input[2].third);
strcat(join, input[3].fourth);
strcat(join, input[4].fifth);
printf("%s", join);
Run Code Online (Sandbox Code Playgroud)
这里输出而不是给我
ABCCABACBAACCCB
给了我
ABC
有人能告诉我我做错了什么吗?
改为写
strcat(join, input[0].first);
strcat(join, input[1].first);
strcat(join, input[2].first);
strcat(join, input[3].first);
strcat(join, input[4].first);
Run Code Online (Sandbox Code Playgroud)
使用这些初始化程序
//...
}input[5]= {
{"ABC", 101},
{"CAB",102},
{"ACB",103},
{"AAC",104},
{"CCB",105}
};
Run Code Online (Sandbox Code Playgroud)
你显式初始化即阵列中的每个元素的只有前两个数据成员first和first_id.所有其他数据成员均为零初始化.
如果你想准确使用你的陈述 strcat
strcat(join, input[0].first);
strcat(join, input[1].second);
strcat(join, input[2].third);
strcat(join, input[3].fourth);
strcat(join, input[4].fifth);
Run Code Online (Sandbox Code Playgroud)
然后按以下方式初始化数组
struct searchTable
{
char first[10];
int first_id;
char second[10];
int second_id;
char third[10];
int third_id;
char fourth[10];
int fourth_id;
char fifth[10];
int fifth_id;
}input[5]= {
{ .first = "ABC", .first_id = 101 },
{ .second = "CAB", .second_id = 102 },
{ .third = "ACB", .third_id = 103 },
{ .fourth = "AAC", .fourth_id = 104 },
{ .fifth = "CCB", .fifth_id = 105 }
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输出看起来像
ABCCABACBAACCCB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |