【问题标题】:Scanning Strings with more than one word扫描超过一个单词的字符串
【发布时间】:2017-02-27 06:26:31
【问题描述】:

我无法创建一个 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

【问题讨论】:

    标签: c arrays string char


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 2014-11-04
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多