在C语言中如何将一个循环字符串读入另一个更大的字符串
我试图将一个数组反复读入另一个更大的数组/字符串。我做错了什么?我收到错误消息在C语言中如何将一个循环字符串读入另一个更大的字符串,c,C,我试图将一个数组反复读入另一个更大的数组/字符串。我做错了什么?我收到错误消息Thread1: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; } voi
Thread1: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;
}
}
}
#包括
void make_nyckel(int size_krypto,char*nyckel);
int main()
{
int size_krypto=15;
char-nyckel[15];
make_nyckel(krypto尺寸,nyckel);
返回0;
}
void make_nyckel(int size_krypto,char*nyckel)
{
字符键[10]={'M','E','K','A','T','R','O','N','I','K'};
chari,j;
对于(j=0;j如果要用作字符串,请不要忘记nyckel
的终止NUL字节
void make_nyckel(int size_krypto, char *nyckel) {
char key[] = { 'M', 'E', 'K', 'A', 'T', 'R', 'O', 'N', 'I', 'K' };
size_t keylen = sizeof key; /* subtract 1 if key includes a '\0'
** or use strlen(key) */
for (size_t k = 0; k < size_krypto; k++) {
nyckel[k] = key[k % keylen];
}
}
void make_nyckel(int size_krypto,char*nyckel){
字符键[]={'M','E','K','A','T','R','O','N','I','K'};
size\u t keylen=键的大小;/*如果键包含“\0”,则减去1
**或使用strlen(键)*/
对于(大小k=0;k
对于循环
,您不需要第一个,只需进行模运算即可:
#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;
}
}
}
#包括
void make_nyckel(int size_krypto,char*nyckel);
int main()
{
int size_krypto=15;
char-nyckel[16];
make_nyckel(krypto尺寸,nyckel);
printf(“%s”,nyckel);
返回0;
}
void make_nyckel(int size_krypto,char*nyckel)
{
字符键[11]={'M','E','K','A','T','R','O','N','I','K'};
int i,j=0;
//对于(j=0;j*nyckel=key[i];nyckel+=1;
这是9*size_krypto
次完成的。在数组中不能为15
留出90个字符(或任何字符)(如果它是字符串,则为14个)nyckel的大小只有15个字符,你写的是150个字符。你超出了分配给你的空间。你不应该使用C标准库中的strncat函数吗?好的,我理解我的错误代码。我如何才能最好地解决这个问题?我的目标是让nyckel=MEKATRONIKMEKATThank这么感谢你!!我把问题简化了一点。真正的功能是很多又复杂又复杂,但构建方式相同..你让我开心!