【发布时间】:2014-10-05 04:13:15
【问题描述】:
我知道可以使用 sizeof 函数来获取大小,但它没有得到数组长度的真实计数。如果我设置了一个 int 50 的数组并且我只存储了 10 个数字,我希望得到 10 作为元素的数量,但当然这不会发生。我知道这绝对是一个微不足道的问题,但请耐心等待,如果可能的话,请帮助我。
到目前为止,我的代码需要一个完整的句子并将其存储在一个数组中。
#include <stdio.h>
#include <string.h>
int main()
{
int i=0;
char array[50]={0};
fgets(array, 50, stdin);
int len = sizeof(array); // it doesn't work :((((((
for(i=0; i<len; i++)
{
printf("%c\n", array[i]);
}
return 0;
}
正如你们所看到的,如果用户决定只输入一个单词让我们说“Bobby Foo”,那么我希望 len 数为 9,包括空格,但 sizeof 函数只获取数组大小的长度声明是 50.. >.>..
【问题讨论】:
-
遗憾的是,C 数组只是低级内存块。程序员有责任跟踪(使用单独的变量)数组中存储了多少元素以及它们存储在数组的哪些位置。
-
一个在数组中搜索换行符的函数怎么样?
-
您可能会发现这个问题很有用:"sizeof-vs-strlen"
-
我知道如何通过数组(搜索)的唯一方法是使用 for 循环,这意味着我需要知道 n(长度)是多少。我知道还有其他方法,但我还是个菜鸟。
标签: c