扫描具有多个单词的字符串

时间:2017-02-27 06:26:32

标签: c arrays string char

我无法创建一个C程序来一次扫描多个单词。我正在创建一个程序,以阅读运动队的名字和他们的输赢数量和他们的损失类型。总共有22个团队,每个团队名称可以有1到3个单词的名称,我想知道什么是我可以扫描我的数据到不同名称大小的最佳方式。 到目前为止我的代码:

int main(void) {

char name[25];
int win[25], losses[25], lossOT[25], lossSO[25], points[25];
int i, n, j, p, x, min;

setvbuf(stdout, NULL, _IONBF, 0);

printf("Enter team data:\n");

i=0;
while(i<26){
    scanf("%s", name);
    if(0==strcmp(name,"0"))break; //what it to break not with a space but when a number is read

    scanf("%d %d %d %d",win[i], losses[i], lossOT[i], lossSO[i]);
    i++;
}

示例输入:

 Team:               W    L   LOT  LSO
 Durham United       5    2    1    0
 Kingston Clippers   6    3    3    1
 London              9    2    1    4
 Ottawa Fury Academy 5    3    1    6

1 个答案:

答案 0 :(得分:1)

首先,对于您的数组大小,while(i<26)off-by-one,请使用i < 25保持在范围内。

然后,您可以使用fgets()将一定数量的数据读入缓冲区,并由换行符分隔,换行符也存储在缓冲区中。