【发布时间】:2019-12-16 11:19:08
【问题描述】:
在我的家庭作业中,我需要做一个函数,取 10 个名字并比较它们,告诉我名字是否相同。
首先,我创建了一个将名称放入数组的函数,然后创建了一个检查它们是否相同的函数。
一开始,我做了一个函数来逐个检查字母是否相似:
int stringCmpi (char *s1,char *s2)
{
int i=0,diff=0;
for(i=0; s1[i]!='\0'; i++)
{
if( toupper(s1[i])!=toupper(s2[i]) )
return 1;
}
return 0;
}
然后我做了一个函数来检查字符串,一个名字一个名字:
int cheak ()
{
int k;
int j=SIZE;
for(k=0;k<MAX;k++)
for(j=MAX;j>=k;j--)
{
if(1==stringCmpi(names[k],names[j]))
{
return 0;
}
return 1;
}
}
在main我做:
if(cheak(names)==1)
{
printf("\nyou repeat names\n");
}
if(cheak(names!=1))
{
printf("\n great! the names are not repeat\n");
}
但我的代码中有一些地方是错误的,因为它可以编译但无法正常工作。所以,请帮助我 - 我将不胜感激。
【问题讨论】:
-
编程课程的目标是学习编程......所以学习如何调试一个软件,一步一步执行你的,你可能会发现问题所在。
-
@עידן רפאל דיי 显示字符串定义数组。
-
if( toupper(s1[i])!=toupper(s2[i]) )- 如果字符串的长度不同怎么办?当s2比s1短时? -
你应该正确缩进你的代码。您的第一个代码 sn-p 正确缩进,其他两个没有。
-
if(cheak(names!=1))- 这看起来很可疑
标签: c arrays for-loop c-strings toupper