|
发表于 2020-10-16 13:07:32
|
显示全部楼层
本帖最后由 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;
- }
复制代码 |
|