int a[100]={0};
int left=0;
int length=0;
do{
scanf("%d",&a[length++]);
}while(getchar()!='\n');
min(a,left,length-1);
scanf遇到空格符就认为数据的接收已经结束了,这个空格符包括空格本身和换行符
所以这里加上do while循环的意思就是可以循环接收一系列数据,当输入为\n时结束该循环。
所以,如果输入是:1空格2空格3空格,那么代表输入空格之后代表本次输入结束,进入下一层循环。
如果题目要求中间是有空格输入,使用这种方式接收
如果是接收字符串可以这么写:
getchar遇到空格会当作是一个字符进行接收,不会认为结束,当遇到\n时才认为结束
int main()
{
char a[100];
int i=0;
while((a[i++]=getchar())!='\n');
printf("%d",i);
return 0;
}
如果是输入连续的一串字符串,用一个字符型数组接收,可以使用:
int main()
{
char a[100];
int i=0;
gets(a);
int x=strlen(a);
printf("%s\n%d",a,x);
return 0;
}