gpt4 book ai didi

c - 如何使用 strcpy 将字符串复制到字符串数组中?

转载 作者:行者123 更新时间:2023-12-01 22:58:23 26 4
gpt4 key购买 nike

我试图将一个字符串复制到一个字符串数组中,但它不起作用。我知道这是内存分配的问题,但我不知道如何让它工作,因为 STRING_LENGTH 是一个常量。

#define NUMBER_OF_STRINGS 3
#define STRING_LENGTH 255
char message_ecran[NUMBER_OF_STRINGS][STRING_LENGTH];

int i;
char texte3[] = "CVC";
char texte7[] = "iiiiiiiii";

for (i=0;i<=NUMBER_OF_STRINGS;i++)
{
strcpy(message_ecran[i], texte7);
}
strcpy(message_ecran[0], texte3);

代码后message_ecran的值:

"CVC"
null
"iiiiiiiii"

期望值

"CVC"    
"iiiiiiiii"
"iiiiiiiii"

最佳答案

一个问题是您在以下循环中跑过了 message_ecran 的末尾:

for (i=0;i<=NUMBER_OF_STRINGS;i++)

由于 message_ecran[NUMBER_OF_STRINGS] 超出范围,尝试 strcpy() 进入它会导致 undefined behaviour .

编辑 关于您的编辑,我无法重现该问题。当我将以下内容添加到您的最新代码时:

for (i = 0; i < NUMBER_OF_STRINGS; i++) {
printf("%d:[%s]\n", i, message_ecran[i]);
}

打印出来

0:[CVC]
1:[iiiiiiiii]
2:[iiiiiiiii]

关于c - 如何使用 strcpy 将字符串复制到字符串数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com