0

这是在主要之外:

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

4 回答 4

1

您必须使用 strcpy 来复制字符串,分配将不起作用。代替

message_ecran[i] = texte7;

strcpy(message_ecran[i], texte7);
于 2013-03-11T08:20:19.213 回答
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);
于 2013-03-11T08:20:14.267 回答
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]);
    }
}
于 2013-03-11T09:07:46.580 回答
0

使用 strcpy(destination,source) 并尝试

于 2013-03-11T08:22:42.153 回答