gpt4 book ai didi

数组大小的条件不产生任何输出 - C

转载 作者:行者123 更新时间:2023-12-01 14:20:34 27 4
gpt4 key购买 nike

printf("Enter name: ");
scanf("%s", first);
int s = sizeof(first);
for(i = 0; i < s; i++){
if(s < 2 || s > 20){
printf("improper array size");
}
}
fprintf(fptr,"NAME: %s \n",first);

代码检查数组大小是小于 2 还是大于 20,但它似乎不起作用。这是为什么?

最佳答案

例子

char first[100];
printf("Enter name: ");
scanf("%s", first);
printf("%zu\n", sizeof(first));
printf("%zu\n", strlen(first));

输出

Enter name: Wasi
100
4
  • printf("%zu\n", sizeof(first)); - 打印字符数组的大小,即 100。
  • printf("%zu\n", strlen(first)); - 打印输入字符串的长度,即 4。

更新

你的if条件没有问题。在上面给出的示例中,如果我添加以下代码片段 -

for(int i = 0; i < s; i++){
if(s < 2 || s > 20){
printf("improper array size\n");
}
}

它打印消息 - improper array size 100 次,这是数组first 的大小。

关于数组大小的条件不产生任何输出 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42183015/

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