本帖最后由 xieglt 于 2020-10-16 13:25 编辑
如果你不需要保存输入的数据,只需要统计输入的数据有几份,可以这么写。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i=0;
char c1,c2;
c2= ' ';
printf("请输入数据,并用空格分开:");
while((c1 = getchar())!= '\n')
{
c2 = c1;
if(c2 == ' ')
{
i++;
}
}
if(c2 != ' ')
{
i++;
}
printf("这份数据共有%d份数据。",i);
return 0;
}
如果需要保留输入内容,可以这么写
#include <stdio.h>
#include <stdlib.h>
#define MEM_SIZE (12)
int main(void)
{
int i=0;
int count = 0;
int oldSize = 0;
char c1,c2;
char * buffer;
char * temp;
buffer = (char *)malloc(MEM_SIZE);
temp = buffer;
printf("请输入数据,并用空格分开:");
c2 = ' ';
while((c1 = getchar())!= '\n')
{
c2 = c1;
temp[count ++] = c2;
if(count >= MEM_SIZE)
{
oldSize += MEM_SIZE;
buffer = (char *)realloc(buffer,oldSize + MEM_SIZE);
temp = buffer + oldSize;
count = 0;
}
if(c2 == ' ')
{
i++;
}
}
temp[count] = 0;
if(c2 != ' ')
{
i++;
}
printf("这份数据共有%d份数据。",i);
free(buffer);
return 0;
}
|