【发布时间】:2026-02-04 12:55:01
【问题描述】:
这是我的第一篇文章。我一直在尝试做这个选择,我希望用户只选择数字而不是输入它们(更容易)但是当我希望数字等于一个字符串时,它会说“数组类型char[30]是不可分配的”。即使在后面我是否放分号。
#include <stdio.h>
int main() {
int choice1;
char word[30];
printf("You have three choice.\n");
printf("[1] Jump [2] Run [3] Dance\n");
scanf("%d",&choice1);
if (choice1 == 1)
{
word = "Jump" //Error #1
}
else if (choice1 == 2)
{
word = "Eat" //Error #2
}
else if (choice1 == 3)
{
word = "Sleep"; //Error #3
}
printf("You will now be %sing",word);
}
【问题讨论】:
-
如果你想在没有
strcpy的情况下分配给word,你可以让word输入const char *word。 -
令人惊讶的是,您收到错误是因为数组类型 char[] 不可分配。在 C 中,你不能像你那样分配字符串,因为没有内置的字符串类型,只有原始字符数组。无论如何,这是一个常见问题解答......有人请找到一个副本。
-
“重复”中接受的答案不是答案 (meta.stackexchange.com/questions/225370/…),只是一个可怕的常见问题解答的链接。
标签: c arrays string assignment-operator