【发布时间】:2020-09-02 03:34:25
【问题描述】:
在这段代码中,我试图检查一个字符串(在我的例子中是俱乐部的名称)是否已经从标准输入中输入。我的目标是避免输入列表中已经存在的名称,但它不起作用。 有人能帮助我吗? 谢谢大家。
gets(club[i].name);
if(i != 0){
for(left = 0; left < i; left++){
for(right = i; right > 0; right--){
outcome = strcmp(club[left].name, club[right].name);
if(outcome == 0){
printf("You already entered this team. Pick another one: \n");
gets(club[i].name);
}
}
}
}
i++;
break;
【问题讨论】:
-
不要使用
gets()。它没有边界检查,已从语言中删除。 -
我不明白你为什么要使用嵌套循环。您只想将此名称与所有以前的名称进行比较,不需要将所有名称相互比较。
-
实际上,我必须将输入的每个字符串与以前的名称进行比较。如果不清楚,我很抱歉
-
您输入一个名称,然后将其与所有以前的名称进行比较。但是您不需要将所有以前的名称相互比较,因为您知道它们不是重复的。
标签: c arrays string loops struct