我正试图将一个数组一次又一次地读入另一个更大的数组/字符串。我做错了什么?我收到错误消息Thread1: signal SIGABRT
??
#include <stdio.h>
void make_nyckel(int size_krypto, char *nyckel);
int main()
{
int size_krypto = 15;
char nyckel[15];
make_nyckel(size_krypto, nyckel);
return 0;
}
void make_nyckel(int size_krypto, char *nyckel)
{
char key[10] = { 'M', 'E', 'K', 'A', 'T', 'R', 'O', 'N', 'I', 'K' };
char i, j;
for (j = 0; j<size_krypto; j++)
{
for (i = 0; i<9; i++)
{
*nyckel = key[i];
nyckel += 1;
}
}
}
最佳答案
您不需要第一个for loop
,只需使用模运算即可:
#include <stdio.h>
void make_nyckel(int size_krypto, char *nyckel);
int main()
{
int size_krypto = 15;
char nyckel[16];
make_nyckel(size_krypto, nyckel);
printf("%s",nyckel);
return 0;
}
void make_nyckel(int size_krypto, char *nyckel)
{
char key[11] = { 'M', 'E', 'K', 'A', 'T', 'R', 'O', 'N', 'I', 'K' };
int i, j=0;
// for (j = 0; j<2; j++)
{
for (i = 0; i<size_krypto; i++)
{
nyckel[j++] = key[i%10];
// nyckel += 1;
}
}
}