gpt4 book ai didi

c - 在c中声明空字符串变量

转载 作者:行者123 更新时间:2023-11-30 15:10:50 25 4
gpt4 key购买 nike

#include <stdio.h>

int main() {
char prompt1[] = "Enter your first name:", prompt2[] = "Enter your last name:";
char gratis[] = "Thanks!", first[], last[]; //empty declaration of string varible

printf(prompt1);
scanf("%s", &first);
printf(prompt2);
scanf("%s", &last);

printf("%s\n", gratis);
printf("Your name is %s %s\n", first, last);
return (0);
}

为什么不能在不指定char数组大小的情况下声明字符串变量?当提到数组的大小时,相同的代码可以正常工作。

screenshot of the error

最佳答案

C 中的数组在创建时必须知道其大小,并且此后大小无法更改。

因此您必须指定所有数组的大小。

仅当您提供初始值设定项时才可以省略大小数字,因为编译器可以根据初始值设定项计算大小。

在您的代码中,您应该选择足够大的大小来存储您期望的内容。另外,您对 scanf 使用了错误的参数。代码可以是:

char first[100] = { 0 };    // avoid garbage in case input fails
scanf("%99s", first);

如果您想允许输入任意大小,那么您必须使用动态分配空间。

关于c - 在c中声明空字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975062/

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