无法初始化字符串数组并使用它们

时间:2013-03-11 08:18:35

标签: c string matrix

这不在主要内容:

char message_ecran[NUMBER_OF_STRINGS][STRING_LENGTH+1];

这是我的功能

 int main(void)
    {
        Init(); 

        int i;
        char texte7[] = "io";

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

我想要一个字符串数组message_ecran,但它不起作用:

incompatible types in assignment

4 个答案:

答案 0 :(得分:1)

您现在正在进行的操作是指针的分配。

您不能简单地将一个字符串分配给另一个字符串,您必须strcpy()才能真正复制数据。

strcpy(message_ecran[i], texte7);

此外,您必须确保在message_ecran[i]中为您尝试复制的字符串分配了足够的内存。否则,您将损坏数据。

修改

您可以查看以下内容:

if(strlen(texte7) < STRING_LENGTH+1)

或者你可以简单地使用以下功能:

char * strncpy ( char * destination, const char * source, size_t num );

strncpy(message_ecran[i], texte7, STRING_LENGTH);

答案 1 :(得分:1)

您必须使用strcpy复制字符串,分配将无法正常工作。 取代

message_ecran[i] = texte7;

strcpy(message_ecran[i], texte7);

答案 2 :(得分:1)

strcpy(),已在您的计划中实施。

#include <string.h>
#include <stdio.h>

#define NUMBER_OF_STRINGS 3
#define STRING_LENGTH 80

char message_ecran[NUMBER_OF_STRINGS][STRING_LENGTH+1];

int main(void)
{
    int i;
    char texte7[] = "io";

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

答案 3 :(得分:0)

使用strcpy(destination,source)并尝试