【发布时间】:2014-11-09 13:41:34
【问题描述】:
我正在尝试用 C 语言创建读取用户输入的程序。正确的用户输入是[number][space][number]。我阅读了每个输入字符并检查是否只有一个空格。当'\n' 出现时,我需要将所有输入字符都存储在数组中。问题是我只有在'\n' 出现时才知道数组的大小。如何将输入写入数组?
这是我的代码:
#include <stdlib.h>
#include <stdio.h>
int array_size=0;
char input;
int spaces=0;
int main (){
while ((input = getchar())!=EOF){
array_size++;
if(input==' '){ //if user input a space
spaces++;
}
if(spaces>1){
fprintf(stderr, "You can input only one space in row\n");
spaces=0;
array_size=0;
continue;
}
if(input=='\n'){ //if thre is only one space and user inputs ENTER
char content[array_size+1];
//here I know array size and need to add to array all chars that were inputed
content[array_size-1]=='\0'; //content is a string
if((content[0]==' ')||(content[array_size-2]==' ')){
fprintf(stderr, "You can't input space only between numbers\n");
spaces=0;
array_size=0;
continue;
}
//then work with array
spaces=0;
array_size=0;
}
}
exit(0);
}
【问题讨论】: