如何在C中计算数组的元素? #包括 #包括 int main() { 字符名[32][32]; 字符输入[32]; 整数; int i; 对于(i=0;i
如何将目标字符串初始化为0,然后在打印时检查它们是否为空如何在C中计算数组的元素? #包括 #包括 int main() { 字符名[32][32]; 字符输入[32]; 整数; int i; 对于(i=0;i,c,arrays,C,Arrays,如何将目标字符串初始化为0,然后在打印时检查它们是否为空 #include <stdio.h> #include <string.h> int main() { char name[32][32]; char input[32]; int number; int i; for(i=0;i<10;i++) { fgets(input,sizeof(input),stdin); sscanf(input,%s,name[i]); } //ass
#include <stdio.h>
#include <string.h>
int main()
{
char name[32][32];
char input[32];
int number;
int i;
for(i=0;i<10;i++)
{
fgets(input,sizeof(input),stdin);
sscanf(input,%s,name[i]);
}
//assume that we don't know variable name have 10 element of arrays.
//function to count how many elements of arrays to stored at number.
for(i=0;i<number;i++)
{
printf("%s",name[i]);
}
}
#包括
#包括
int main()
{
字符名[32][32]={0};
...
for(i=0;iC不维护此类信息。由开发人员实现某种方式来知道数组中的项是否有效。通常通过选择“无效值”来实现,该值在实际数据中永远不会出现。另一种方法是单独维护计数
这对于学习C来说是很好的。如果你是为现实世界做这件事,你会更好地使用像列表这样的数据结构。如果你使用C++,我建议你学习STL。< /P>
简单的C解决方案是这样的。值“empty”用于表示输入中通常不会出现的任何值。您可以将#define更改为您想要的任何其他值,如“----”或“.”。我们首先将整个数组初始化为“empty”
#包括
#包括
#定义最大项目32
#定义最大长度32
#定义空“空”
内部主(空)
{
字符名称[最大项][最大长度];
字符输入[最大长度];
int i;
对于(i=0;i
这是一个解决方案。
但我不知道为什么它在尝试创建数组长度函数时不起作用
#include <stdio.h>
#include <string.h>
#define MAX_ITEMS 32
#define MAX_LENGTH 32
#define EMPTY "empty"
int main(void)
{
char name[MAX_ITEMS][MAX_LENGTH];
char input[MAX_LENGTH];
int i;
for(i = 0; i < MAX_ITEMS; i++)
{
strcpy(name[i], EMPTY);
}
for(i = 0; i < 10; i++)
{
fgets(input, MAX_LENGTH, stdin);
sscanf(input, "%s", name[i]);
}
for(i = 0; strcmp(name[i], EMPTY) && i < MAX_ITEMS; i++)
{
printf("%s\n", name[i]);
}
return(0);
}
#包括
int main(){
int a[]={1,2,3,4,5,6,7,8,9,0};
内伦;
len=sizeof(a)/sizeof(*a);
printf(“长度为%d\n”,len);
返回0;
}
的副本。您能解释一下您想计算什么吗?数组中的元素数???@Jeffrey我认为OP指的是数组中存储的10个项目,而不是数组的大小。如果我输入一个空行(name[I]=“”
),会怎么样?然后它就不被计算了。根据操作。哦!!我的错误。对不起,我不擅长英语和词义@kinjall Dixit是的,我想知道这个函数可以计算数组中存储的项目。哦,非常感谢。我可以使用你的指南来应用我的程序。你解释得很清楚。我应用了你的代码,遇到了新问题。哈哈,len=sizeof(a)/sizeof(int)
#include <stdio.h>
#include <string.h>
#define MAX_ITEMS 32
#define MAX_LENGTH 32
#define EMPTY "empty"
int main(void)
{
char name[MAX_ITEMS][MAX_LENGTH];
char input[MAX_LENGTH];
int i;
for(i = 0; i < MAX_ITEMS; i++)
{
strcpy(name[i], EMPTY);
}
for(i = 0; i < 10; i++)
{
fgets(input, MAX_LENGTH, stdin);
sscanf(input, "%s", name[i]);
}
for(i = 0; strcmp(name[i], EMPTY) && i < MAX_ITEMS; i++)
{
printf("%s\n", name[i]);
}
return(0);
}
#include<stdio.h>
int main(){
int a[]={1,2,3,4,5,6,7,8,9,0};
int len;
len = sizeof(a)/sizeof(*a);
printf("Length is %d\n",len);
return 0;
}