我有两个char数组:a,b。我怎样才能创建一个循环" for"新的数组vet,它是两个交替数组a,b?
的并集#include <stdio.h>
int main(void) {
char a[] = "BNSIO";
char b[] = "EISM\a";
char vet[sizeof(a) + sizeof(b)];
for (int i = 0; i < (sizeof(a) + sizeof(b)); i++) {
}
for (int i = 0; i < (sizeof(a) + sizeof(b)); i++){
printf("%c", vet[i]);
}
}
答案 0 :(得分:2)
你可以试试这个:
for (int i = 0,j=0,k=0; k < (sizeof(a) + sizeof(b) -2);)
{
if(i+1<sizeof(a))
{
vet[k] = a[i];
i++;k++;
}
if(j+1<sizeof(b))
{
vet[k] = b[j];
j++;k++;
}
}
for (int i = 0; i < (sizeof(a) + sizeof(b)-2); i++){
printf("%c", vet[i]);
}
您需要为空终止字符
减去1答案 1 :(得分:0)
对于来自两个数组的交替值,请尝试此操作(假设长度相等):
int main()
{
int i;
char a[] = "BNSIO";
char b[] = "EISM\a";
char vet[sizeof(a) + sizeof(b)];
for( i = 0; i < sizeof(a); i++) {
vet[2*i] = a[i];
vet[2*i+1] = b[i];
}
for(i = 0; i < sizeof(vet) ; i++){
printf("%c", vet[i]);
}
}