gpt4 book ai didi

c - 如何创建静态字符串数组并调用它们?

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:49 24 4
gpt4 key购买 nike

尝试做刽子手游戏并在程序开始时创建我的单词数据库。然后像 str[i] 和 rand func i int 一样调用。

  1. 下面的代码给出了 INVALID CONVERSİON FROM CHAR TO CONSTANT CHAR

    char str[19];
    char temp[1000];
    char c[1];

    int ErrorCount=5;
    int i,j=0;

    i=rand()%19;

    str[0]="literature";
    str[1]="scholar";
    str[2]="enormous";
    str[3]="influence";
    str[4]="orchestra";
    str[5]="publication";
    str[6]="teacher";
    str[7]="member";
    str[8]="final";
    str[9]="phonograph";
    str[10]="striking";
    str[11]="different";
    str[12]="screwdriver";
    str[13]="intelligient";
    str[14]="executed";
    str[15]="oldest";
    str[16]="people";
    str[17]="requiring";
    str[18]="pioneer";
    str[19]="telephone";

最佳答案

char str[19];

上述语句将 str 定义为 19 个字符的数组。在下面的声明中

str[0] = "literature";

字符串文字 "literature" 的计算结果为指向其第一个元素的指针,该元素的类型为 char *。此指针分配给类型为 charstr[0]。这解释了您收到的错误消息。您应该将 str 定义为指向字符的指针数组。字符串文字在 C 中不是 const 限定的,因此尝试修改它们不会导致编译错误,但会导致未定义的行为并且很可能导致程序崩溃。因此,str 应该定义为指向常量对象的指针数组。

const char *str[19];
str[0] = "literature";

如果要将字符串文字复制到数组中,则应将 str 定义为字符数组的数组。稍后,您可以使用标准库函数 strcpy 来复制字符串文字。

#define MAX_LEN 50+1  // +1 for the terminating null byte

char strlist[19][MAX_LEN];

strcpy(strlist[0], "literature");

关于c - 如何创建静态字符串数组并调用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455865/

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